远程通信节点的系统测试方法
发布时间:2008/5/29 0:00:00 访问次数:457
1 概 述 | |||||||||||||||||||
在基于远程通信的分布式控制系统中,为了增强系统的兼容性和灵活性,可将控制节点的远程通信功能单独分离出来,交给远程通信节点去管理。这样,各远程节点之间的通信就完全等效为控制节点间的本地通信,而无需关心其是否具有远程通信能力,从而简化控制节点的设计。 | |||||||||||||||||||
一个典型的远程通信节点的例子是基于单片机实现的、具有2个rs-232串行口、1个485总线端口的系统。单片机选用具有存储功能的89c51,rs-232串口选用具有握手功能的接口芯片16c550,485总线接口选用75176接口芯片与单片机的串口相连,而对于待转发数据的存储则采用静态ram芯片6264。在89c51系统中,由于i/o端口地址与外部ram单元地址处于同一个地址空间,因此采用一个统一的3-8译码器就可以实现对i/o端口和对外部ram单元的操作。 | |||||||||||||||||||
通用异步收发器(uart)是实现远程通信的核心部件,也是系统测试的重点。本方案所选用的16c550是一个稳定性好、可靠性高、编程功能很强的uart。它除了完成对收发数据的"串-并"和"并-串"转换之外,还可通过对其内部11个寄存器的编程方便地设置芯片的工作方式、数据帧格式等控制参数以及读取芯片的工作状态和modem的状态等数据,从而实现远程通信节点之间的全双工通信。16c550有三种工作模式:查询、中断和回路自测试。系统正常工作时宜采用中断方式,以提高系统的效率;而查询方式和回路自测试方式主要用于系统测试场合。 | |||||||||||||||||||
远程通信节点是一个软硬件结合、本地和远程通信功能并存的复杂系统,给系统测试带来一定难度:一方面硬件系统的逻辑正确性有待验证,另一方面系统软件的逻辑功能也有待进一步调试。在两种因素都不确定的情况下,如何能够确认系统逻辑的正确性,值得深入研究。解决这类问题的基本思路是对相关因素进行解耦,即将多个相互关联的因素按一定的边界条件分解为相对独立的因素,然后对这些独立的因素分别加以处理。 | |||||||||||||||||||
完成对远程通信节点的测试需要用到如下几种仪器设备:万用表、逻辑笔、数字存储示波器以及单片机的仿真器、modem、公用电话线路、pc机等。 | |||||||||||||||||||
2 系统测试步骤 | |||||||||||||||||||
在系统测试之前,应首先确定系统测试的总体方案及流程,根据总体流程把系统功能分解为功能相对独立的单元模块,对单元模块逐个进行软硬件测试;然后,从逻辑上将单元模块进行集成测试;最后,对系统的远程拨号及系统整体功能进行测试。具体地说,对远程通信节点系统的测试步骤如下: | |||||||||||||||||||
第一步,对i/o端口的读/写访问测试; 第二步,对uart的连结逻辑和状态测试; 第三步,本地数据通路测试,即测试从cpu到rs-232的本地数据通路是否形成; 第四步,通信节点与modem之间握手信号的应答测试,以及modem对at指令的响应测试; 第五步,通信节点拨号功能测试与数据链路测试; 第六步,通信节点的整体测试。 | |||||||||||||||||||
2.1 cpu外围电路及外部ram、i/o端口的测试 | |||||||||||||||||||
在对cpu及其外围电路测试之前,应在断电的情况下,用常规方法检查主要芯片的连线是否正确。如果连线和焊接全部正确,再对通信节点上电测试,检查其工作电压是否正常。如果这些检查都正常,则继续测试。 | |||||||||||||||||||
(1)cpu外围电路的测试 | |||||||||||||||||||
将通信节点与仿真器连接,通过仿真器以单步工作方式向单片机内的i/o端口(如p1口)送出测试信号。用万用表或逻辑笔测试单片机芯片引脚的状态,依此验证单片机的外围电路是否正常工作。 | |||||||||||||||||||
(2)外部ram及i/o端口的测试 | |||||||||||||||||||
在回路自测试模式下,对mcr的位操作将会引起msr相应位的状态发生变化,回路自测试的判断逻辑为: msr.5 = mcr.0 msr.4 = mcr.1 msr.6 = mcr.2 msr.7 = mcr.3 | |||||||||||||||||||
即在给定mcr值的情况下,如果从msr能得到相应的值,则说明uart工作正常,外围电路的连接逻辑正确;否则,说明uart没有正常工作。对回路自测试结果进行分析判断的程序如下: mov dptr,#mcr ; 取mcr的地址 mov a,#0bh movx @dptr,a ; 将mcr的值设置为0bh mov dptr,#msr ; 取msr的地址 movx a,@dptr ; 从msr读取相应的状态数 ; 据,判断其是否为b0h | |||||||||||||||||||
由此可见,回路自测试功能是非常有用的,使用这种方法可以迅速判断16c550的连接逻辑是否正确。 | |||||||||||||||||||
2.3 对本地数据通路的测试 | |||||||||||||||||||
在完成通信节点核心部分的单元测试之后,需要对2个rs-232串口之间的本地数据通路
|