1引言
串行通讯接口标准经过使用和发展,目前已有多种,不过都是在RS-232C的基础上改进而形成的。RS-232C标准是美国EIA(电子工业联合会)与BELL公司一起开发并于1969年公布的通讯协议。因此,他作为一种标准,目前已在微机通讯接口中被广泛采用,他不仅已被内置于每台计算机,同时也已被内置于从微处理器到主机的多种类型的计算机及其相连设备。而串口与单片机的通讯技术可以解决多台下位机的多内容同时显示,还可以方便地完成多机通讯技术、多数据处理等优点。但是当同时用到两种通信方式时,很可能产生串口冲突或其他不可预料的错误,对开发工作极其不利。
所以,此系统解决了这种开发中的问题,依靠软件仿真数据信号的发送、接收和多种通讯方式的测试。利用简单的硬件连接去检测串口和单片机通讯是否能正常工作。
2系统硬件组成
由图1可看出,该系统主要由软硬件两部分构成,硬件平台是由PC机串口发送到下位机一条通道。图中光耦电路完成PC机信号RS-232电平到TTL电平的转换。当PC机输入口为RS-232高电平时,二极管VD1及光耦电路导通,使得三极管VT1导通,8031接收口RXD被定位于TTL低电平(0 V);当输入口为RS-232低电平时,二极管VD1及光耦电路截止,使得三极管VT1截止,RXD被定位于TTL高电平(+5 V)。
另外软件系统对由PC信号入口(串口)可以输入信号,对串口和单片机的通讯进行字符、数字、显示等测试。
3测试方法和内容
由串口向单片机接口进行通讯、发送数据和返回设备状态,而传输协议的选择对于通讯双方至关重要。针对系统的测试主要是常规测试,所以选择了面向字符的同步协议,如图2所示。
这种协议的典型代表是IBM公司的二进制同步传输(BSC)协议,他的特点是一次传送若干个字符组成的数据块,而不是只传送一个字符,并规定了10个字符作为这个数据块的开头与结束标志以及整个传输过程的控制信息,他们叫做通信控制字。此系统会在测试时严格依照协议对单片机接受端进行数据发送,从端口发送数据校验码进行测试。而数据前的SYN主要起联络作用,SOH为序始字符。数据块将传送正式的测试字符,测试字符包括数字、汉字、字符等进行发送,单片机(下位机)将进行相应显示,显示完成后,PC机(上位机)将有本地回显,回显出发送的内容和接收到的数据是否显示一致。如果显示一致,则测试系统将会发出串口和单片机连接成功的标志;如果不能一致显示,或者出现乱码以及出现数据错位,或者单片机难以接受上位机数据。
类似这些情况,此系统会开始利用二进制编码进行位校验,当接口和单片机不能通讯时,可能出现硬件或者软件的情况。测试系统会有专门的模块进行处理,将会对通讯过程进行再次发送,如果发送后,得不到单片机的回应信号则说明硬件电路连接存在问题。而出现不能正常显示等情况,则系统会对发出的数据进行位分析,自动对发送的测试数据减少其内容,并重新检测协议的执行,以确定协议上无错。检测是否为硬件的电路产生的干扰。因为可测试多台下位机,所以,数据为广播方式发送,测试时可调整为点-点的发送方式。而系统会在接受到正常返回信号后,自动正常回显。
测试过程中,系统自动调整测试顺序,以最快的速度对所有下位机进行测试,常规情况下是顺序测试。如果某个单片机和串口通信出现问题,则系统会跳过出问题的目标机,继续向下检测,并同时记录下该机的问题。
在所有目标机被测试完成后,对出问题的机器再进行点点的测试,以确定其状况和问题所在。如果多目标机出现问题,则可对他们同时采取处理,启用多个进程进行实现,以提高效率。该系统最多可同时对8个目标机进行检测,超过8个,系统会自动进行任务保存,以进行第二批处理。
4系统软件具体实现
软件系统主要完成的功能是单片机串口的初始化和双机通讯,完成软件测试。而单片机初始化包括下面内容:串行控制器SCON的设置,定时器方式控制寄存器TMOD及T1的定时初始值的设置,专用寄存器PCON的SMOD位的设置。
在测试开始时,PC机先送出测试开始标志(本系统用ASCII码的1AH),接着发送各下位机的地址信号,再送出本次测试要发送的数据个数信息,最后是连续发送出测试数据。下位机采用查询方式接受数据,当RI被激活时,读入数据,判断是否是1AH,如果是,则继续等待接受下一个数据,判断是否在呼叫自己,若是,则往下接受第3个数,即本次要接受的数据个数,并按照其所给信息相应设定往下要连续接受的数据个05数。
上位机的串行通讯本系统采用异步串行通讯,该通讯测试程序是顺序结构。主要操作是上位机向下位机发送通讯测试开始标志“1AH”和下位机的联络地址,指令下位机接受数据个数的信息以及测试数据的正确显示。流程图如图3所示。
上位机测试系统数据测试界面如图4所示。
各台下位机用查询方式接收数据,等待接收到数据,进行输出对比。如果显示输出与发送一致,则说明通讯测试成功。单台下位机接受流程图如图5所示。
5结语
该系统充分利用了计算机串口和外设进行通讯的功能,该系统还可以稍加改动与其余类型单片机进行通讯测试。由于串口使用简单,通讯方便,越来越多的外设测试系统利用此种技术。此测试系统具有使用硬件少、可靠性高的优点。经实践证明,在多种环境下运行情况良好。
参考文献
[1]Charles Wright.Visual C++程序员实用大全[M].北京:中国水利水电出版社,2001.
[2]孙涵芳,徐爱卿.MCS-51/96系列单片机原理及应用[M].北京:北京航空航天大学出版社,1988.
[3]余小平,奚大顺.PC机并口与单片机间的数据传送[D].2001嵌入式系统及单片机国际学术交流会论文,2001.
[4]张海藩.软件工程导论[M].北京:清华大学版社,1998.
[5]马明建,周长城.数据采集与处理技术[M].西安:西安交通大学出版社,1998.
[6]张磊.虚拟仪器测试系统中数据共享的实现[J].计算机自动测量与控制,2000,(8).