APP下载

高速RS-422串行通信接口板设计

2012-08-20李晓建余维荣王向东吴金才

网络安全与数据管理 2012年6期
关键词:串口端口内存

李晓建,余维荣,张 霞,王向东,吴金才

(第二炮兵装备研究院,北京100085)

RS-422串行通信方式以其传输距离远、可靠性高、使用灵活等特点,目前仍被大量应用[1]。某型装备测试时,为了实现状态监测与故障诊断,需要对设备间12路通信速率为614.4 kb/s的RS-422串行通信接口进行实时的数据转存,而通用串行通信接口板的通信速率最高为128 kb/s,数据缓存能力差,不能满足要求。本文设计了一种由异步串行通信控制器、嵌入式PC和双端口RAM为主的高速RS-422串行通信接口板,通信速率高,数据缓存强,使用简单。

1 总体方案

高速RS-422串行通信接口板总体方案如图1所示。该接口板采用通用的异步串行通信控制器ST16C554D,其传输速度可以由输入时钟的频率来控制,最高可以达到1.5 Mb/s,通过计算,本接口板采用9.830 4 MHz的晶振,可以达到614.4 kb/s通信速率,该控制器具有通用并行端口,可以把PC总线扩展为4个异步串行通信端口。选用高速全双工422通信收发器MAX1490,其传输速度可以达到2.5 Mb/s,收发互不影响。为了实现高速实时数据转存,采用嵌入式PC对异步串行通信控制器ST16C554D进行读写操作,并把读取的数据存入双端口RAM[2]。数据接收完毕后,主控PC通过PC104总线对双端口RAM进行读写操作,读出数据并存储在数据文件中,既充分发挥了主控PC的多任务处理能力,又不会对高速数据通信产生影响。

2 硬件设计

2.1 嵌入式PC对异步串行通信控制器的读写控制

采用嵌入式PC完成串行通信任务,其任务单一,可以保证数据的实时收发[3]。如图2所示,本接口板嵌入式PC采用德国控创公司的DIMM-PC/520-I,由133 MHz的高性能CPU、32 MB内存、32 MB板载电子盘、标准ISA总线接口等组成[4]。由于异步串行通信控制器ST16C554D具有并行PC总线接口,可以直接和DIMM-PC的ISA总线相连接。DIMM-PC与ST16C554D的连接方式为IO映射,即ST16C554D作为外部器件,其读写控制由IO读写信号决定。

ST16C554D的传输速度由外接晶振的频率进行调节,传输速率为外接晶振的 1/16、1/32、…、1/256,可由软件对寄存器进行设置。ST16C554D扩展了4个标准串行接口,由DIMM-PC的地址线A3~A9经GAL译码后进行选择;每个串行接口有多个寄存器,由DIMM-PC的地址线A0~A2进行选择。

2.2 嵌入式PC对双端口RAM的读写控制

采用大容量双端口RAM主要是为了数据的缓冲和中继传输。双端口RAM器件IDT7006以内存映射方式与DIMM-PC相连,如图3所示。其数据线D0~D7和地址线A0~A13与 DIMM-PC的数据线 D0~D7和地址线 A0~A13直接连接。内存映射时,双端口RAM的读写信号由DIMM-PC的内存读写控制信号-SMEMR和-SMEMW控制,这样当DIMM-PC访问IO端口时,不会因地址相同而产生冲突,同时提高了寻址能力。由于DIMM-PC的基本640 KB内存空间是公用的,很多程序都访问这个区间,不能把地址映射到这个区域,而1 MB以上的区间为扩展内存时 (加内存条)使用的,也不能任意使用,在640 KB~1 MB之间有很多空闲区间,可以供扩展板卡进行内存映射时使用。本接口板使用0E0000H~0EFFFFH区间(32 KB)。

2.3 PC104总线对双端口RAM的读写控制

双端口RAM IDT7006以内存映射方式与PC104总线相连,原理如图4所示。其数据线D0~D7和地址线A0~A13与 PC104总线的数据线 D0~D7和地址线 A0~A13直接连接。同样原因,内存映射时,双端口RAM的读写信号由PC104总线的内存读写控制信号-SMEMR和-SMEMW控制。主控PC对本接口板访问时,本接口板虽然在硬件上独立于主控PC,但主控PC可以把本接口板作为其内存的一段来进行读写操作,这样就方便了程序的设计。本接口板映射的地址也在主控PC内存640 KB~1 MB之间,具体地址因主控PC型号的不同而有所区别,可以编程控制。

主控PC和嵌入式PC通过双端口RAM进行数据交换,同时对双端口RAM进行读写操作,在控制逻辑上要避免发生冲突,又要保证信号时序的正确。应该充分利用双端口RAM器件本身的接口资源和状态信号,保证译码的正确有效,在软件设计时保证不同时对一个内存单元进行写操作;另外,采用专用的可编程逻辑芯片替代传统的逻辑门电路组合,提高了译码的速度、准确度和可靠性,减小了电路规模。

2.4 RS-422端口驱动与收发

异步串行通信控制器ST16C554D扩展了4个标准串行接口。在进行RS-422方式通信时可以只使用每个接口的TX和RX端,采用隔离RS-422收发器MAX1490进行端口驱动与收发,如图5所示。

MAX1490把TTL电平的串行通信转换为RS-422电平方式且相互隔离,可避免系统间干扰和瞬间高压损伤。MAX1490的输入端DI是其内部光耦的输入端,需要一定的驱动电流,但ST16C554D的输出驱动能低,因此增加了74HC86门电路进行驱动;MAX1490的输出端DO是集电极开路(OC)输出,应在此端接一个上拉电阻,并用门电路74HC86把电平调理成标准的TTL电平后再由ST16C554D接收。MAX1490的422方式输入输出端(TX+,TX-,RX+,RX-)可以直接与其他系统按 RS-422通信协议进行通信。

3 嵌入式 PC主程序结构

嵌入式PC的主程序结构如图6所示,其中有两个重要组成部分,分别是异步串行通信控制器的采集程序和双端口RAM间的控制程序。嵌入式PC与异步串行通信控制器间以IO映射的方式进行连接,控制方式比较简单,只需要按照寄存器结构进行设置和读写操作即可实现数据传输,在此不进行过多阐述,仅对双端口RAM的控制程序进行详细说明。

双端口RAM首字节的数据用于传递命令和状态字,数据含义如表1所示。

双端口RAM在嵌入式PC的内存映射地址为E0000。初始化设置模块对接口板各串口进行初始化,执行自检程序,测试内存和串口状态。把测试结果写在双端口 RAM的 E0000位置,55H(或 66H或 77H或 88H)表示串口 1(或串口 2或串口 3或串口 4)自检错误;EEH表示内存自检错误;FFH表示自检正常;00H表示主机软件的重启动命令,主要用于主机非正常重启时,强制嵌入式 PC主程序放弃已采集数据,重新初始化设置,等待采集命令;99H表示主机软件的采集命令。

用户软件通过查看状态标识位,与接口板上嵌入式PC的DRAM交换数据。用户软件发送转移数据命令,即修改 E0000为 AAH(或 BBH或 CCH或 DDH),接口板程序将串口1(或串口2或串口3或串口4)接收的数据转移至E00005以后的地址中,并回复命令,即将E0000修改为11H(或 22H或 33H或 44H),表明串口 1(或串口 2或串口3或串口4)的数据准备好,用户软件可以读取。转移数据长度写在E0002和E0003地址中。所选择串口是否还有未转移数据标志写在E0004地址中(11H有,00H无)。

表1 双端口RAM首字节的数据含义

4 应用结果

为形成对12路高速串行通信数据的转存能力,数据采集系统中使用了3块按照上述软硬件设计方法所设计的接口板,应用结果表明,各串行通信接口板运行正常,数据接收与存储能力达到了预期目标,对系统资源的占用少。

本文所提出的高速串行通信接口板设计方法应用了嵌入式PC,形成了专门处理数据的核心,提高了数据传输速率,对外部CPU和总线的要求宽松;同时,可以在硬件电路不变的情况下,通过修改软件协议,即修改双端口RAM的读写控制程序,实现全双工高速串行通信。

[1]孙渊,王仕成,闵海波,等.RS422高速串行通信在 AT91-RM9200 上的实现[J].弹箭与制导学报,2008,28(1):329-332.

[2]李正军.计算机测控系统设计与应用[M].北京:机械工业出版社,2004:127-132.

[3]胡宏伟,宋斌,赵秀娟.基于 CPLD和 DIMM-PC微处理器模块的图像采集处理系统设计[J].光电技术应用,2006,21(5):61-66.

[4]Kontron embedded computers AG.DIMM-PC/520-I user’s guide[S].2003

猜你喜欢

串口端口内存
一种端口故障的解决方案
浅谈AB PLC串口跟RFID传感器的通讯应用
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
“春夏秋冬”的内存
端口阻塞与优先级
系统网络端口安全防护
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
串口技术的实物调试和虚拟仿真联合教学模式
内存搭配DDR4、DDR3L还是DDR3?