双向透明串口扩展技术在嵌入式系统中的设计
本嵌入式多参数监护仪HOST端使用AT91RM9200处理器,该处理器具有4个通用同步/异步接收/发送器(USART),其中一个是DEBUG串口,但它们都是分时复用的[1]。为了使HOST端更好地与各采集模块进行通信,必须解决其串口扩展的问题。
目前比较通用的串口扩展方案主要有2种。一种通过硬件实现,使用多串口ARM/MCU或专用串口扩展芯片,可供选择的串口扩展芯片有TI公司开发的 16C55X系列串口扩展芯片和国腾公司开发的GM812X系列串口扩展芯片等。TI公司的16C55X系列芯片通过并行口扩展串行口,功能比较强大、通信速度高,但控制复杂,同时价格较高,主要应用于PC机串口扩展。另一种串口扩展方案通过软件实现,但用软件
不管是采用硬件还是软件方案,大多数串口扩展产品几乎都是单向传输,不够透明化[4-7]。本文根据参与的多参数监护仪项目的需要,提出一种双向透明的串口扩展设计方案,并通过了实验验证。
1硬件设计
1.1串口扩展模块拓扑图
在设计中,串口扩展模块可以外接4个用户设备,每个用户设备都可以在与HOST端进行双向数据传输,采用分时复用技术,即在任一时刻,最多仅有一个串口与HOST端连接,串口扩展模块负责4个通道的切换/选择。双方通过硬件和软件机制进行仲裁。如图1所示。
1.2硬件设计方案
串口扩展模块主要由2部分组成:单片机AT89C2051及模拟开关CD4052、双4通道模拟开关。
串口扩展模块拓扑结构图如图2所示,其中虚线框内为串口扩展模块的主要部分。
2 通信协议设计
2.1数据由用户设备发送到HOST端
由于各模块是分时复用的,为了避免用户设备之间发生竞争,需要AT89C2051对4个用户设备通道进行仲裁,本文采用以下方案。
2.2数据由HOST端发送到用户设备
为了使HOST端的数据能够及时准确地发送到各个用户设备,就需要和AT89C2051之间定义好通信协议。其协议如下。
AT89C2051始终监视HOST终端发出的信息,一旦收到HOST终端发出的串口选择命令,如表1所示,立即对P3.4和P3.5引脚进行设置来控制 CD4052
本文在设计中将HOST端的TXD引脚连接到AT89C2051的RXD引脚,这样就可以通过AT89C2051的串口接收中断和HOST端通信, HOST端发送数据/命令时首先发送串口选择命令字,其次再发送数据/命令去控制用户设备的数据采集,例如增益大小、是否启动血压测量等命令。
3软件设计
软件设计分为主函数、串口中断服务程序、外部中断0和1服务程序4个部分,如图3所示。
在很多场合需要进行串口扩展以满足系统集成多个串口设备,扩展方法很多,各有优缺点。本文提出的用单片机AT89C2051为AT91RM9200扩展串口的方案是基于单片机价格低廉、体积小,完全可以替代一般的专用接口芯片,作为真正意义上的可编程接口,实现双向通信,使串口扩展模块变得透明。这种方案使用灵活,与一般接口芯片相比对外部用户设备具有更好的适用性,经实验验证达到了设计目标。将单片机等同于普通接口芯片使用,是一种新思路,具有一定的启迪作用和实际参考价值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)