上机位程序设计,谁可以先提个串口通信的需求。我可以写个示例,抛砖引玉.
我可以写个示例,抛砖引玉. 以前用delphi6比较多,用cport写过一些串口的程序. delphi7和delphi6差很多吗?我正准备学,但不知该装那个版本的软件 delphi7和delphi6差的不多,除了几个网络的控件有差别.7差不多是delphi最后一个非.net的版本
因为我是前几年,单位正版的用6. cport很不错!!! 我以前也是以那个vb的mscomm来进行串口通讯,稳定性还步错,在delphi里还用他,不知道是不是其他delphi里的组件会不会有其他什么新特点啊 。 好的,这几天有空的时候写一下. 可以用Delphi 6.0+SPCOMM来开发
Delphi 6.0 补上 SP2 和 RTL2 ,比较其它任何一个版本(非.net)都稳定。
呵呵。 谢谢楼主,最好能写个像串口调试助手那样的,我最近想BOOTLOADER,但一直没有找到合适的上位机程序。再此先谢谢了!!! 我现在也正在写示例,需求如下:
功能需求:读写EEPROM
功能目的:通过AVR操作EEPROM
终端用:AVR M8 + AT24C04(EEPROM)
AVR编译 :CodeVersion C
PC编译:DELPHI 6.0
目前示例已经写得差不多了,估计再过2天就比较稳定了,因为要上班,所以是抽时间出来写的。 SPCOMM,到那找呀? 注:请常常上MSDN 搜一下,里边有很多大师级程序员写的关于如何优化托和提高“托管代码”性能的好文。
用 C# 编写更快的托管上位机程序代码 (原创:zj_qzm)
为什么我会用C#来写工控程序,而不是C++呢?原因有两个,第一,我不想用MFC来写程序,第二,由于有了C#的出现。当然了,用C++写程序有一个很大的优点就是“快”,而且部署容易;而C#呢,由于它是机于 Framework 的,要安装运行时库,而且比C++要慢。
但是C#也有它天生的优点,我最看重的就是开发的效率极高(这是VC++的缺点所在),而且容易上手,现在也有很多基于 .NET Framework 的工控相关的资源可用,比如NI的Measurement Studio.Net 组件就是专门为 Visual Studio.NET 而开发的,里面有丰富的UI资源和各种工业控制所用到的算法、波形产生函数、软件滤波、PID等等都已集成成 类方法的形式提供给调用者。
由于现在的电脑已经非常快,内存也很大,所以,代码的速度和效率比起来效率占了上风,但并不是就不用考虑代码的速度了。因此,我在此总结出用C#如何写出接近C++代码速度的方法。这对于上位机这种实时性要求比较高的程序是很有用的。
首先要清除一个误区,.NET Framework 的代码速度和 java 根本不是一个层次的,尽管它们都是托管代码,但是JAVA只能写蜗牛应用程序,而 .NET Framework 托管代码能写出很快的本地应用程序。
为什么呢?原因就在于它的“实时编译器”, CLR 使用 JIT(实时)编译器将 CIL 中的各种方法编译成本机 x86 代码,然后运行本机代码。尽管 JIT 在编译首次调用的方法时会稍有延迟,但所调用的各种方法在运行纯本机代码时都不需要解释性的系统开销。
与传统的脱机 C++ 编译过程不同,JIT 编译器花费的时间对用户来说都是“时钟时间”延迟,因此 JIT 编译器不具备占用大量时间的彻底优化过程。尽管如此,JIT 编译器所执行的一系列优化仍给人以深刻印象:
常量重叠
常量和复制的传播
通用子表达式消除
循环不变量的代码活动
死存储 (Dead Store) 和死代码 (Dead Code) 消除
寄存器分配
内联方法
循环展开(带有小循环体的小循环)
结果可以与传统的本机代码相媲美,至少是相近。
至于数据,可以混合使用值类型和引用类型。值类型(包括整型、浮点类型、枚举和结构)通常存储在栈中。这些数据类型就像 C/C++ 中的本地和结构一样又小又快。使用 C/C++ 时,应该避免将大的结构作为方法参数或返回值进行传送,因为复制的系统开销可能会大的惊人。
引用类型和装箱后的值类型存储在堆中。它们通过对象引用来寻址,这些对象引用只是计算机的指针,就像 C/C++ 中的对象指针一样。 因此实时编译的托管代码可以很快。
以下就是编写快速本机代码的原则:
、不要创建不必要的对象
托管代码与本机代码的最大不同之处在于自动内存管理。您可以分配新的对象,但 CLR 垃圾回收器 (GC) 会在这些对象无法访问时自动释放它们。GC 不时地运行,通常不为人觉察,但一般会使应用程序停止一两毫秒,偶尔也会更长一些。 不过GC是一个很优秀的内存管理专家。但是我们也要记住,不要创建不必要的对象。由于自动内存管理消除了许多对象分配和释放方面的复杂情况、问题和错误,并且用起来又快又方便,因此我们会很自然地想要创建越来越多的对象,最终形成错综复杂的对象群。如果您想编写真正的快速托管代码,创建对象时就需要深思熟虑,确保对象的数量合适。
将组件和应用程序作为 CIL 的程序集的最大好处之一是,您的程序可以做到每秒都变快、每年都变快。“每秒都变快”是因为运行时(理论上)可以在程序运行时重新调整 JIT 编译的代码;“每年都变快”是因为新发布的运行时总能提供更好、更先进、更快的算法以将代码迅速优化。因此,如果 .NET 1.1 中的这几个计时不是最佳结果,请相信在以后发布的产品中它们会得到改善。 而且在今后发布的 .NET Framework 中,本文中所列代码的本机代码序列可能会更改。
2、尽量不用委托来调用方法,尽可能用函数。
委托调用比方法调用大约慢八倍。希望以后会有所改进。
3、尽可能不用线程,而用延时函数。比如framework 内置的timer、和Windows 系统提供的高精度记时器,等等。
4、记住,发布代码时一定要以Release的形式发布,因为它是被优化了。
5、尽可能不用反射 (Reflection)
有这样一种说法:“如果您要知道‘反射'的开销是多少,您可能根本负担不起。”
反射很有用而且功能强大,但与实时编译的本机代码相比,它既不显得快,也不够精炼。
6、 许多 C/C++ 代码优化方法也同样适用于托管代码。
如果您想成为一名高性能托管代码的开发人员,您必须获得“托管代码知识”。您必须了解每项低级操作的开销,必须了解像委托 (Delegate) 和代码访问安全等这类功能的开销,还必须了解正在使用以及正在编写的类型和方法的开销。能够发现哪些方法的开销太大,对您的应用程序不会有什么损害,反倒因此可以避免使用这些方法。
7、要正确理解托管数据和垃圾回收器
在以性能为中心的应用程序中使用托管代码时,开发人员最关心的问题之一就是 CLR 内存管理的开销 - 这种管理由垃圾回收器 (GC) 执行。内存管理的开销由与类型实例关联的内存的分配开销、在实例的整个生命周期中内存的管理开销以及当不再需要时内存的释放开销计算得出。
托管分配的开销通常都非常小,在大多数情况下,比 C/C++ malloc 或 new 所需的时间还要少。这是因为 CLR 不需要通过扫描可用列表来查找下一个足以容纳新对象的可用连续内存块,而是一直都将指针保持指向内存中的下一个可用位置。我们可以将对托管堆的分配看作“类似于堆栈”。如果 GC 需要释放内存才能分配新对象,那么分配可能会引发回收操作。在这种情况下,分配的开销就会比 malloc和new 大。固定的对象也会对分配的开销造成影响。固定的对象是指那些 GC 接到指令,在回收操作期间不能移动其位置的对象,通常是由于这些对象的地址已传递到本机 API 中。
与 malloc 或 new 不同的是,在对象的整个生命周期中管理内存都会带来开销。CLR GC 区分不同的代,这就意味着它不是每次都回收整个堆。但是,GC 仍然需要了解剩余堆中的活动对象的根是否是堆中正在回收的那部分对象。如果内存中包含的对象具有对其下一代对象的引用,那么在这些对象的生命周期中,管理内存的开销将会非常大。
8、关于终结 (Finalization)
CLR 提供一种在释放与类型实例关联的内存之前自动进行清理的机制。这一机制称为终结 (Finalization)。通常,终结用于释放本机资源,在这种情况下,释放由对象使用的数据库连接或操作系统句柄。
终结是一个开销很大的功能,而且它还会加大 GC 的压力。GC 会跟踪 Finalizable 队列中需要执行终结操作的对象。如果在回收期间,GC 发现了一个不再存活且需要终结的对象,它就会将该对象在 Finalizable 队列中的条目移至 FReachable 队列中。终结操作在一个称为终结器线程 (Finalizer Thread) 的独立线程中执行。因为在终结器的执行过程中,可能需要用到该对象的所有状态,因此该对象或其指向的所有对象都会升级至下一代。与对象或对象图相关的内存仅在执行后续的 GC 时才会释放。
需要释放的资源应该包装在一个尽可能小的可终结对象中,例如,如果您的类需要引用托管资源和非托管资源,那么您应该在新的可终结类中包装非托管资源,并使该类成为您的类的成员。父类不能是可终结类。这意味着只有包含非托管资源的类会被升级(假如您没有在包含非托管资源的类中引用父类)。另外还要记住只有一个终结线程。如果有终结器导致此线程被阻塞,就不能调用后续的终结器,也不能释放资源,而且您的应用程序会导致资源泄漏。
提示应该尽可能使终结器保持简单,且永远不会阻塞。
提示仅将需要清理的非托管对象的包装类设为可终结。
可以将终结认为是引用计数的一种替代形式。执行引用计数的对象将跟踪有多少其他对象对其进行引用(这会导致一些非常众所周知的问题),以便在引用计数为零时释放其资源。CLR 没有实现引用计数,因此它需要提供一种机制,以便在不存在对象的引用时自动释放资源。终结就是这种机制。通常,终结仅需要在要清理的对象的生命周期不明确的情况下执行。 SPCOMM在同通信速度上好象要差些吧?! cport这个控件怎么用啊?谁能指导一下啊? 设计内容:
开放实验室管理需要现代化管理手段的支持,如何搞好实验过程管理,拉近学生和实验教师间的距离,提高实验教学质量是值得研究的问题。实验过程管理服务系统就是针对综合实验中心特定环境下实验指导与服务,设计的一套系统,包括学生台、中心控制台和教师台三大部分。本设计是利用PC机为平台实现的中心控制转接台部分,主要实现学生实验呼叫台和教师台间的中心数据转发,实验课程信息录入和保存,实验教师注册和注销、实验呼叫记录保存等功能。
本设计主要任务是:
1、 熟悉和了解Dephil软件工具使用方法
2、 研究服务系统的整体功能和与中心控制转发台的关系
3、 设计中心控制转发台软件程序设计,通信协议和方法
4、 系统联调和测试。
技术要求:
以PC为控制平台,基于Dephil软件设计数据结构、用户界面、多用户串口有线通信方法与协议,完成基础数据录入和保存,实验教师注册和注销、学生与老师间实验呼叫数据的转发等功能。
实验过程管理服务系统组网方法的研究
综合实验中心为了提高实验室和实验设备的利用率,采用现代化信息化管理手段,实现实验中心的综合开放,综合实验管理,综合实验运行,也即同一实验室可以承担多种实验,同一实验也可以在不同的实验室中完成,只要实验室具备相应的实验设备条件。
实验包括短时的集中实验、长期的相对集中实验和完全学生自主开放实验等多种形式。短时集中实验适合于课程实验,以演示、验证实验为主,一位教师负责一个自然班的实验指导。长期相对集中实验以大型综合实验为主,在一段时间内以学生为主体,教师实验指导为辅的开放实验形式,由一个教师团队完成一批学生的实验辅导。学生自主开放实验是导师制的学生自主实验,以完成学生课外科技开发项目为主,是发挥学生创新能力的很好形式。无论何种形式,学生在实验中能及时得到老师的辅导指点,无疑可以大大提高实验效率。但在综合实验环境下,在学生多,开放式过程种,学生和老师间的联系较少,熟悉程度有限,会使学生和老师联系相对困难,同时由于学生实验位置的分散而使辅导教师无法选择最合理的实验辅导地点,学生也无法及时联系到辅导教师,降低了实验效率。
在综合实验环境下,各种类型的实验可以在实验中心同时进行,实验中心在为学生提供必要的实验场地和设备的同时,如何提高实验过程中学生和实验辅导教师间的信息沟通也是提高实验设备利用率的一个重要手段,为此,我们研究开发了一种实验过程管理的电子辅助系统,服务与实验,构建有效的师生联系通道,加强实验师生间的信息交流,提高实验效率。
一、 实验过程管理服务系统
系统一般由学生台、教师台和转发中心三大部分,根据组网方式的不同,实际的物理结构可以分为三部分或二部分结构。
1、实验过程管理服务系统的作用
建立师生间信息勾通的桥梁,实现操作简单、勾通快速、高效服务的实验过程管理。记录实验过程,分析实验效果和服务水平。
2、实验过程管理服务系统工作环境
实验过程管理服务系统工作环境可以在计算机网络技术完备的实验室环境中使用,对于配备有大量计算机的实验室,如计算机房可以直接利用机房硬件设备构建系统,配备合适的软件系统实现相应功能。对于无计算机网络的实验室环境可以设计专用的实验过程管理系统设备,独立建立系统,这种系统使用简单方便,适应性好。
3、实验过程管理服务系统工作方法
实验过程管理服务系统的运行主要分几大部分,有些是需要经常操作,有些只是配置时操作,主要有以下几个方面:
系统参数配置:在系统安装或改变系统使用环境,实验开设、教师人员变动时配置或修改配置参数。
教师机的登录与撤消:系统的使用以教师的登录开始,以教师的登陆注销结束。系统适用于单实验室的多教师服务,也适用于多教室多实验交叉环境,特别适应综合实验室的多模块开放实验管理。
学生信息查询与呼叫:系统的主要功能是学生对实验老师辅导状态的查询和学生的实验呼叫。通过实验查询,学生可以了解当前在实验室辅导教师的人数,忙闲情况,可以正确地、又针对性地选择合适的辅导教师,提高实验辅导的效率。解决了空间、环境和人的因素的影响。
教师的应答与处理:教师可以根据当前的具体情况,迅速、暂缓或拒绝学生的呼叫请求,但通过与学生间信息的勾通,可以明示学生相应的理由。提高了实验辅导服务质量。
服务质量管理:系统对实验辅导过程进行全程记录和信息管理,通过日志可以分析实验效果、实验质量、实验难度、学生实验的理解及教师对实验的参与程度。真正从技术手段上实现对实验的过程管理。
二、 组网形式分析和网络结构研究
组网是设计合适系统需要考虑的重要因素,合理的组网结构可以节约生产成本,降低安装复杂性,提高系统运行可靠行,从而降低设备的使用成本。因此组网需要从生产的一致性、安装方便和使用的灵活、有效、可靠几个方面考虑。生产的一致性是指产品设计因适合批量生产从而降低生产成本。安装既要考虑生产成本又要考虑设备使用的可靠及方便。使用的灵活、有效和可靠是指安装和使用的技术可以保证数据传输的可靠性。因而可以考虑有多种网络结构。
1、 组网方法分析
组网指的是系统网络,即学生台、中心转发器及教师台的通信方法。通信可以采用有线传输和无线通信两种方式,考虑系统环境和使用的特点,研究合适的组网方法是非常必要的。
目前主要的技术包括:局域网技术、有线串行总线通信技术和无线通信技术。
局域网技术:当学生实验台配备有计算机,并有局域网联网时,借用局域网和计算机构建实验过程管理系统是最适合的方案,这样的投资成本最低,系统可靠,系统功能于强并易于扩展。
有线串行通信总线技术,包括:RS232、RS485、RS422、CAN、SPI、IIC、USB等多种技术,USB技术传输速度快速、适合于大容量点对点场合,但由于多学生机结构并合适。CAN为转用总线,适用于汽车等专用系统、SPI速度快速,但当用户数增多是总线数量大,不适用于数量过多的用户结构。IIC可以实现一主多从系统,但传输距离受电平和方式的影响,不能保证远距离可靠传输。RS232/485/422是使用最为广泛的串行通信总线,传输距离长,其中RS232适合与点对点系统,RS485/422适合于点对碰点系统。RS485为量线系统,布线方便,缺点是半双工模式,对于点对多点的通信灵活性有一定影响。RS485虽然增加了一对通信线,但实现了全双工通信模式,提高了系统的灵活性和数据传输可靠性,因此,当采用有线方式构建专用实验过程管理系统时,RS485是最合适的通信模式。
无线通信技术包括:简单无线通信模块如。。、专用数据通信模块如。。。和智能手机无线通信技术。
简单无线通信可选的模块种类很多,有用于遥控器的单向无线数据收发器,通常采用315M/433M通用无线波段。模块成本机低,但速率低,通信控制处理复杂。专用数据通信模块一般集成了通信处理MCU,数据通信缓冲器,具有双向数据通信能力,标准的SPI或232通信接口,通信控制简单,通信能力适中。有些模块还集成了专用的通信协议,应用物联网技术、ZEGBEE技术等先进的网络技术,实现快速部署,灵活网络组网。使系统应用方便、灵活,适应性强。但多用户无线组网会形成无线干扰增加。数据通信可靠性降低,当用户数量曾多时,通信成本增加较快。第三种是利用公网中使用的无线技术,如WiFi、无线通信模块(Modem)、具有Androd操作系统的智能手机、无线AP等技术作为用户设备通信接口和转发器,其特点是技术先进,技术含量高,系统功能扩展能力强,问题是使用成本高,组网复杂。
(1) 用户(学生台)组网分析
学生台的特点是用户数量多,呼叫的突发性、随机性,系统供电等问题。可以采用有线或无线两中通信方式。但根据不同应用环境需要采用不同的组网方法。
有计算机的学生台合适使用网络技术,借助用户计算的强大功能,设计合理的用户界面程序,可以实现多功能实验过程管理系统。
没有计算机的实验台的实验室可以设计专用实验台终端,有线通信可以减少数据干扰,而RS422优于RS485,可以保证中心数据不受干扰地下发到各用户台,对于多用户数据的上报,可以采用中心控制下的数据轮循方式通信,可以保证数据通信的可靠性。
多用户的供电可以采用集中或分散供电方式,而集中供电方式即可以降低成本,又可以有效控制所有用户台的工作状态。
随着物联网技术的发展,自组网的无线用户网络也是可以考虑的方案之一。
(2) 教师组网分析
教师台应便于教师操作,而教师在实验过程中需要为不同的用户服务,所以移动方式更适合教师台的设计,通信自然需要采用无线通信方式。
移动教师台就是把教师台设计成便携式设备,供教师服务其间携带使用,其方式的优点是使用方面,逻辑关系清楚,设计合理,缺点是需要无线通信技术,对于功能简单的移动台,带有MCU的双向简单无线通信方式是比较合理的方案,它设计简单,成本低,具有专用功能。
便携式设计也对系统功耗、供电方式提出了更高要求。
采用具有Androd系统的智能手机也是一种优秀的设计方案,可以利用公网技术组建系统,教师台使用灵活,携带方面。但这种设计更多的技术支持,使用成本相对较高。
教师台的设计也可以采用固定方式。固定式教师台设计简单,但在教师的流动服务过程中无法携带,要完成移动服务需要把每个学生台都设计成学生教师两用台,用多点完成教师台的移动功能。所以这种方式实际没有固定的教师台。
(3) 中心台位置方法分析
中心转接台是系统的关键设备,但中心转接台的实际设置是可以有多种方法。
用计算机设计中心控制台,控制用户台与教师台之间的通信转发。数据配置、数据记录和查询。可以很容易实现功能强大的服务系统。无论用户台和教师台采用什么方案可以选用。但控制台必须采用合适的通信技术连接用户台和教师台。
也可采用专用系统实现中心控制台,这是也称位中心转发台。它与用户台有线通信,远程供电,数据收发,它于移动教师机实现无线通信,数据收发。
中心台可以独立,也可以由某一学生台代替。
2、 系统网络结构研究
合理的系统网络结构要从多方面考虑,首先根据实验室设备条件,其次要根据用户使用需求,同时也要考虑设备的性价比。最合理的网络结构可以有多种形式,主要有专用设备结构、通用网络结构、混合专用结构和通用混合结构等。
(1) 专用网络结构
专用网络结构中的所有设备独立设计,不利用实验室的原有设备和计算机等,构件一套实验过程管理系统。系统主要包括学生台、移动教师台和中心转发台。其网络结构可以设计成:
有线(学生台)+有线无线中心转发台+无线(移动教师台)形式。
由于实验呼叫系统的特点是学生工作台多,教师台少,通信数据往往是多点对一点。有线+无线方案就是学生台采用有线连接方案,学生台信号通过中心转接器与无线移动教师台通信。
中心转发台是系统控制中心,即是数据转发点,又是数据控制中心,也是电源供应点。用户和转发中心采用RS422通信,保证中心对用户通信信道的绝对畅通,用户共享接收数据,通过通信协议区分信息内容。而用户上行数据采用时分复用,通过中心伦循访问,防止用户的数据通信。
(2) 计算机网络结构
对于装备有计算机和网络的实验室,利用开放实验室信息管理系统,设计网络实验过程管理系统可以利用现有的计算机硬件资源。其系统结构简单,主要为:
教师登录台(中心数据库)+计算机(学生台+教师台)联网结构。
这种结构没有专门的移动教师台,教师登录台和中心管理系统合一为教师台,学生兼顾移动教师台的功能。教师的登录在教师台完成,当某学生台成功呼叫,教师会在该台为学生服务,这是学生台暂时转变为教师台功能,教师可以通过这个台接收和发送指令,当教师确认新的服务对象后,该台自动恢复为学生台,教师台功能有下一学生台代替。这种系统的优点是设备管理方便,可靠性高。
(3) 综合实用系统
以上两种系统的演变,可以设计出多种实用系统,包括:
*计算机+专用用户系统:中心管理采用计算机,用户采用专用平台,学生台和教师台功能合一,一机两用,学生台和中心台采用有线连接。用计算机控制所有学生台/教师台的通信。
*计算机+移动教师机+专用学生台系统:把教师台从学生台上分离,设计成可移动的教师台,构成中心、教师、学生三部分系统。中心台采用通用计算机,其他采用专用设备。这是比较灵活的典型系统。
*计算机+WiFi智能手机+用户学生台专用系统:随着无线WiFi技术、Andrion系统、智能手机的广泛应用,把教师功能植入智能手机、利用无线WiFi局域网技术、数据库技术、WEB技术和单片机技术构件多技术融合的实验过程管理系统,是现代通信技术在实验管理应用中的综合体现。是一种很有前途的系统。
*计算机(WEB)服务器+WiFi智能手机+学生专用系统:为了使系统的适应性更强,采用WEB技术提高移动教师机的使用灵活性,保证能上网的手机就具备移动教师机的功能。可以进一步降低设备成本,提高系统实用性,简化系统管理和维护成本。
三、系统设计(有线/无线混合网设计)
设计原则:低成本、操作简单、可靠。比较有效、典型的系统有三种:纯计算机系统、专用系统和混合系统。
1、学生台的设计
学生台的基本功能是查询已登录的在线教师信息,选择合适的对象呼叫,等候教师端应答信息。
硬件系统需要CPU、LCD屏、少量键、RS422通信接口和少量RAM
按键设计:查询键(菜单键)--列出在线教师/课程表
选择键 --选择呼叫对象
呼叫键
屏幕设计:在线教师列表
呼叫状态和应答信息
操作方法:按“查询键”显示在线教师/课程列表
按“选择键”选择需要的教师项
按“呼叫键”发送呼叫信息
2、中心转接台的设计
中心转接台的基本功能是配置基本实验信心数据,包括课程开设情况和教师信息。接收教师台的信息登录。转发教师与学生台间的数据通信。存储信息日志。
硬件系统需要CPU、LCD屏?、键盘?、RS422通信接口、SPI无线通信接口、无线数据通信模块、SD存储卡。
通过pc把“实验台地址表”、“教师表”和“能开实验表”以txt文件形式存储在卡中,同时卡中将呼叫通信日志以TXT文件形式存储供PC查询。LCD和键盘可以考虑不要。
提供学生台5V电源的远供。
中心转接台任务:
*根据用户地址表查询在线用户
*接收用户的呼叫数据,记录并转发给移动教师机
*接收移动教师数据,处理并转发给相应用户
远程供电设计。
多用户(学生台)的供电是系统设计需要考虑的重要因素之一,用户独立供电设计简单,但增加了用户端成本,同时终端的开关控制,通信响应的矛盾增加,无意会增加系统设计的复杂性。所以集中远程供电是一个比较合理的方式。远程集中供电电源通过中心转接设备的串行口输出,供给每一个学生台,学生台的工作状态直接由中心转接台管控,大大简化了学生台的电源管理设计。
集中供电的最大问题是总功率过大的问题。这可以通过分路设计加以解决。本设计把采用多端口设计。即128路学生台分为32路一个端口,共分为4个端口,假如每一学生台的功耗为100ma,则32各学生台的总电流最大为3.2A,满负载运行需要3.2X4=12.8A,如供电电压为5V时,只要使用64W的电源就能满足系统需求。如果我们使用100W/5V/20A的开关电源就可以满足院供要求。
3、 移动教师台的设计
(1)教师台的基本功能和按键设计
移动教师台的基本功能是教师登录与注销,学生呼叫信息应答。
硬件系统需要CPU、LCD屏、少量键、SPI无线通信接口和无线数据通信模块。
按键设计:应答键:答复选择排队等候的用户信息/刚到的信息呼叫
选择键:排队用户的选择/登陆参数选择
等待键:对刚到呼叫用户的等待回答(无法立即到达)
登录键:教师登录启动键/注销
结构框图见图xx
(2)教师台的登录/注销
启动/停止操作:
按登录键-》显示登陆/注销选项-》用选择键选择相关项。
(1)选择登录操作,(2)选择注销操作(3)选择其他操作,这些操作时键的作用: 应答键=OK,等待键=ESC,登录键=菜单键,选择键=选择键
登录操作:接(1)显示课程表-》用选择键选择相应项-》按应答键-》显示教师表-》选择教师-》按应答键-》显示登录完成(登陆数据发送到中心)。(登录完成前按“等待键”将取消这次登陆。
注销操作:接(2)显示已登录列表-》按选择键选定需注销项->按应答键注销(发送信息到中心),应答注销状态。
(3)教师台的呼叫处理
应答操作:当有新呼叫进入或完成对前一同学辅导后的操作
①新呼叫进
语音提示:XX台呼叫,并显示排队总数/当前为第几位
新呼叫必须有老师手动应答,如30秒无手动应答,转成自动应答:“请稍等,老师正忙”,并作为老用户加入队列。
老师手动应答可选:应答键,发送:“马上到”
等待键:发送:“请稍等,老师正忙”
②已排队用户的再呼叫
自动应答,回复:请稍等,老师正忙
③完成辅导后的处理
当老师处理完一组实验后可选:
应答键:向队列最前面的用户发送:“马上到”
选择键:移向下一用户
选择合适用户后,在按应答键:向选定对象发送:“马上到”
④特殊情况
*当无用户呼叫或排队时,应答、选择、等待键都无效,只有登陆键可以登陆或注销,方法见启动/停止操作。
*已呼叫的用户多次呼叫,老师不用应答,系统自动应答“请稍等,老师正忙”,减少了老师的工作量。
*当老师正忙时的新呼叫,老师可以不操作,20秒后自动应答:“请稍等,老师正忙”,减少了老师的工作量。
*老通过选择键师有权选择合适的服务对象。提高了老师的主观能动性。
4、计算机中心方案设计
当转发中心采用计算机为工作平台时,需要改变转发中心的设计,采用Dephil使用SCOM控件,设计基于Dephil的控制中心软件。
中心软件的主要数据结构:
①实验室信息表
②教师信息表
③能开实验(课程)表
④实验过程记录表
⑤在线教师表
表间关系见下图
实验室信息表
实验室信息表是建立实验室、实验台(号)和用户通信地址关系的表,在呼叫过程中,其实验台信息是通知老师的物理地址。通信地址是系统使用的协议地址,系统使用前需要配置合理的实验室信息表。
表1 实验室信息表
序号 区域 实验室 实验台 通信地址
1 仙林 综合实验1室 01 12
2 仙林 综合实验1室 02 13
.。。。 。。。 。。。 。。。 。。。
N 三牌楼 有线楼2室 01 50
教师信息表
教师信息表是存储教师姓名、职称、编号等信息的表,在教师登录和呼叫过程中使用。
表2 教师信息表
序号 姓名 职称 代号 说明
1 张三 讲师 T0001 106
2 李四 实验师 T0002 106
.。。。 。。。 。。。 。。。 。。。
N 王五 副教授 T000N 107
能开实验(课程)表
能开实验(课程)表存储了实验室开设的实验类型、实验名称等,信息在教师登录和实验呼叫过程中使用。
表3 能开实验(课程)表
序号 实验大类 实验小类 实验名称 说明
1 本科 课程实验 通信原理 三年级
2 本科 课程设计 51单片机 四年级
.。。。 。。。 。。。 。。。 。。。
N 本科 软件设计 AVR单片机 三年级
实验过程记录表
实验过程记录表存储记录了某堂或某一时间段的实验呼叫记录表,实验记录在呼叫中生成,用于实验过程查询和后期分析。
表3 实验过程记录表(实验课程名称、教师名字、日期)表名
序号 实验室 实验台 呼叫时间 服务时间
1 01 01 8:33 8:50
2 01 03 8:42 9:12
.。。。 。。。 。。。 。。。 。。。
N 02 23 9:30 9:33
在线教师表
在线教师表存储记录了某堂或某一时间段的实验呼叫记录表,实验记录在呼叫中生成,用于实验过程查询和后期分析。
表4 在线教师表(实验课程名称、教师名字、日期)表名
序号 姓名 编号 实验小类 实验名称
1 张三 T0001 课程实验 通信原理
2 李四 T0002 课程设计 51单片机
.。。。 。。。 。。。 。。。 。。。
N 王五 T000N 软件设计 AVR单片机
4、 通信协议设计
(1) 通信协议的基本格式
通信接口:采用有线RS422接口,一个中心控制中心最多可以连接140个终端,其中包括学生台和教师台,学生台可以为128个,其余为教师终端。
通信协议:采用主从方式,控制中心为主机,通过轮询与终端通信,下行数据广播,终端选择性接收,终端的信息发送在轮询窗口内完成。
地址1—128 为学生终端物理地址。130-140为教师机地址。200学生广播地址、201为教师广播地址,202位全局广播地址
命令帧结构:(中心—终端)
起始符 地址 命令 信息长度 信息内容 校验和 结束符
0xFF 1-140 0xYY 0Xbb N A⊕B 0xFE
注:*每包信息长度1字节,n不大于250字节
*校验和:起始符⊕地址/命令⊕执行动作⊕执行时延=校验和
*在收到0xFF后有两种结束法,收到0xFE或超时(20ms)
应答帧结构:(终端—中心)
起始符 地址 响应 信息长度 信息内容 校验和 结束符
0Xff 1-140 0xZZ 0xBB N A⊕B 0xFE
注:*广播信息不应答
*呼叫信息在N中发送
*校验和:起始符⊕地址/命令⊕执行动作⊕执行时延=校验和
命令表
命令
序号 命令字 命令功能 方向 命令说明
1 30 发送能开实验表 A—C /3
2 31 发送教师名单 A—C /3
3 32 教师在线登陆 C—A /2 可以重复登陆
教师登陆确认 A—C /3 确认/已登陆/失败
4 33 下载在线教师表 A—B /3
5 34 呼叫命令 B—A /1 在教师台排队/计数
6 35 呼叫应答 A—B /3 34/38的应答
7 36 呼叫转发 A—C /3
8 37 教师应答 C—A /2
9 38 教师当前位置查询 B—A /1 不在教师机中排队
10 39 教师服务通知 C—A /2
11 3A 在线教师注销 C—A /2
12 3B 在线用户查询 A—B /3
13 3C 在线教师查询 B—A /1
14 3D 教师通知转发 A—B /3
15 3E 教师应答转发 A—B /3
16 3F 学生呼叫转发 A—C /3
17 40 关机 A—D /3
18 41 开机 A—D /3
19 42 通用应答 D—A /4
20 43 服务忙闲查询 B—A /1
注:A—是控制中心(3-中心主发编号,11)
B—是学生台(1-学生台主发编号,3)
C—是教师台(2-教师台主发编号,4)
D—是转发前端(4-转发端主发编号,1)
(2) 学生台与中心间的命令(A—B)
*呼叫命令(34)(B—A)(在教师队列中排队)
学生台号 地址 在线教师编号 实验室号
1 1 1 1
01 33 1 1
应答命令(35)(A—B)
在线教师编号 教师当前位置(台) 当前室 状态
1 1 1 1
1-M 1-N 1-X 0/1
*学生教师查询当前位置(38)(B—A)(不在教师队列中排队)
学生台号 地址 在线教师编号 实验室号
1 1 1 1
01 33 2 1
应答命令(35)同下
*学生查询在线教师(3C)
学生台号 地址 在线教师编号 实验室号
1 1 1 1
01 33 0 1
应答命令(35)
下载在线教师数据表(中心—学生台)
字节序号 名称 信息类型 长度 说明
0 信息条总数 BYTE 1
1 序号1 BYTE
2 长度1 BYTE
3 信息条1 STRING N
。。。 。。。 。。。
N+1 序号2
N+2 长度2
N+3 信息条2
.。。。 。。。 。。。
信息条格式:
格式 例1 例2 说明
* * * 隔离符
实验类型 课程设计 课内实验
* * * 隔离符
实验名称 51单片机 通信原理
* * * 隔离符
姓名 张三 李四
状态 1(在线) 0(已注销)
# # # 结束符
说明:学生关心的是课程,所以教师姓名放后部。
确认应答
格式 例1 例2 说明
* * * 隔离符
教师位置 课程设计 课内实验
* * * 隔离符
教师状态 51单片机 通信原理
# # # 结束符
是中心台转发给相关教师台后,教师台应答到中心,中心回复结果。
*教师服务通知转发命令()(A—B)
在线教师编号 教师服务位置(台) 服务室 状态
1 1 1 1
1-M 1-N 1-X 0
学生台应答:
学生台号 地址 在线教师编号 实验室号
1 1 1 1
01 33 1 1
应答命令(35)(A—B)
(3)教师台与中心间的命令(C—A)
*教师在线登陆(32)
教师台号 教师姓名编号 能开实验编号
1 1 1
2 30 6
教师在线登陆应答(32)
教师台号 教师位置 在线记录编号 状态 登陆时间
1 1 1 1 6
2 0 6 1 YYMMDDHHTTSS
状态:1成功 2已登陆 3失败
失败的可能是库中没有匹配的名字或实验
*教师在线注销(32)
教师台号 在线教师编号
1 1
2 30
教师在线注销应答(32)
教师台号 在线教师编号 状态 注销时间
1 1 1 6
2 6 1 YYMMDDHHTTSS
状态:1成功 2已注销 3失败
失败的可能是库中没有匹配的名字或实验
*请求发送能开实验表(30)
教师台号
1
2
发送能开实验表(30)
能开实验表(中心—教师台)
字节序号 名称 信息类型 长度 说明
0 信息条总数 BYTE 1
1 序号1 BYTE
2 长度1 BYTE
3 信息条1 STRING N
。。。 。。。 。。。
N+1 序号2
N+2 长度2
N+3 信息条2
.。。。 。。。 。。。
信息条格式
类型 内容 隔离符
1 N 1
1 通信原理 00
2 51单片机 00
字符以00结束
*请求发送教师名单表(31)
教师台号
1
2
发送教师名单表(31)
教师名单表(中心—教师台)
字节序号 名称 信息类型 长度 说明
0 信息条总数 BYTE 1
1 序号1 BYTE
2 长度1 BYTE 固定为9
3 信息条1 STRING N
。。。 。。。 。。。
N+1 序号2
N+2 长度2
N+3 信息条2
.。。。 。。。 。。。
信息条格式
内容 隔离符
8 1
张三 00
李四 00
。。。 。。。
*中心呼叫转发命令(34)(A—C)(在教师队列中排队)
学生台号 地址 在线教师编号 实验室号
1 1 1 1
01 33 1 1
应答命令(35)(A—B)
在线教师编号 教师当前位置(台) 当前室 状态
1 1 1 1
1-M 1-N 1-X 0/1
状态:0=马上来1=正忙,请稍等
*教师服务通知命令()(C--A)
在线教师编号 教师服务位置(台) 服务室 状态
1 1 1 1
1-M 1-N 1-X 0
中心转发应答:
学生台号 地址 在线教师编号 实验室号
1 1 1 1
01 33 1 1
(3) 中心和转发台间命令(PC中心系统)
*启动/关闭用户电源
控制状态
1
1/0/2
1=启动用户电源 0=关闭用户电源 2=查寻转发器状态
状态
1
1/0
1=用户电源启动状态 0=用户电源关闭状态 2=转发板故障状态
5、 程序流程设计
(1) 学生台启动流程
中心启动(PC)
远程供电
用户在线测试
登录在线用户和故障(不存在)用户表
建立在线教师表(空记录)
(2) 教师台启动流程
教师台上电
请求中心发送教师表
请求中心发送能开实验表
(3) 登陆流程
在线教师登录
新在线教师信息分发
(4) 注销流程
在线教师注销
注销消息分发
(5) 呼叫流程
学生呼叫请求
呼叫登记排队
向教师台转发呼叫信息
教师台回复信息
向学生台转发结果信息
(6) 查询流程
学生台查询在线教师信息
中心回复在线教师信息表
教师台查询基本信息
中心回复教师表、实验表
(7) 服务流程
教师台发送服务信息
中心转发给学生台
学生台回复确认信息
中心更新状态信息
中心回复教师台确认信息
页:
[1]