在工业现场中的串行通信测试系统研究与设计 |
2014-01-05 18:34 作者:张振华 宫海波 王仲 来源:硅谷网 HV: 编辑: 【搜索试试】
|
|
硅谷网综合 《硅谷》杂志刊文称,在工业现场中,底层设备常使用RS232、RS422和RS485等接口进行通信,而上位计算机常使用USB接口进行通信。为方便计算机与底层设备之间的通信,设计出一种用于串行通信的系统,能够将USB接口数据和串口数据进行转换,并介绍系统的总体架构、软硬件设计方案,通过VHDL语言设计实现基于FPGA的总线控制器功能。最后,通过LabVIEW测试程序验证串行通信测试系统的功能。
随着计算机科学技术和通信技术的不断发展,越来越多的通信设备采用了传输速率快且性能优异的USB接口。另外USB接口支持即插即用,同时一个USB接口理论上可以连接127个USB设备。在目前的各种电路系统中,RS232、RS422和RS485等接口仍然是大部分设备所使用的通信接口。目前,随着USB接口实际应用的不断普及,如何实现USB接口和工业设备接口之间的数据传输是一个研究的热点。实际应用过程中,串口的传输距离一般都优于USB接口,通过接口转换能够延长USB的传输距离。同时,本文利用FPGA的可编程特点,用硬件描述语言来实现各个总线控制器的功能,从而实现数据的实时处理。因此,这样一种接口转换系统必将有较好的市场竞争力。
系统FPGA芯片采用了Xilinx公司生产的Spartan3E产品,该芯片具有输入输出口多、成本低以及时钟频率较高等特点,能够满足系统的需求。通过虚拟仪器开发平台LabVIEW加以实现。仿真结果表明,该方案能够满足和实现串行通信测试系统的功能。
1系统总体方案(
本文所设计的系统结构主要是由总线控制器、上位计算机、总线接口电路三部分组成。
系统中的USB总线上发送的数据采用上位计算机来显示和监控,系统中采用虚拟仪器开发平台LabVIEW作为控制平台,计算机与总线控制系统间的通信是通过USB接口实现的,从而完成对串行通信测试系统的验证。
总线控制器是系统设计中的一个重要组成部分,在整个系统的数据传输和接口转换过程中起到了纽带作用,利用FPGA的可编程特点,在FPGA芯片上实现了各种总线控制器的功能,同时,FPGA芯片还可以对各种接口发来的数据进行实时处理。
系统所采用的总线接口包括RS232、RS422、RS485和USB。其中,USB接口用于连接计算机和总线控制器,RS232、RS422、RS485接口用于连接工业设备和总线控制器,系统框图如图1所示。
图1串行通信系统框图
2硬件设计方案
系统中的硬件部分主要完成的是总线控制器的硬件设计,通过采用FPGA芯片设计,主要由配置模块、时钟模块、JTAG连接器、PROM模块、FPGA电源管理模块、UART模块以及USB接口模块。
本文的硬件设计分为以下四个部分:
1)FPGA部分,包括配置模块、JTAG连接器、PROM模块、FPGA电源管理模块以及时钟模块。
2)RS232、RS422、RS485和USB四种接口的总线接口部分。
3)根据国际规定的标准波特率序列,数据传输速率的设置利用5个拨动开关来进行波特率的设置。
4)数据传输信号灯部分,利用两个信号灯分别指示RS232、RS422、RS485的收发状态,另外用一个信号灯指示USB的工作状态。
硬件设计部分的结构示意图如图2所示:
图2硬件设计结构示意图
3软件设计方案
系统的软件部分,FPGA功能程序的硬件描述语言选择VHDL,在Xilinx软件开发平台上实现的。通过模块化的设计思想,系统的程序设计分为总线控制器部分和数据转换部分。
1)系统中的总线控制器主要是利用FPGA来实现UART控制器功能,从而实现RS232、RS422和RS485的数据格式控制和波特率控制。
2)系统中的数据转换部分,上电后FPGA首先对各接口模块进行复位和初始化操作,之后进入接收循环检测状态。过程中如果检测到有数据输入,就根据相应接口协议对数据包进行解析操作,同时改变相应状态寄存器,然后将接收的数据转化为USB格式输出。然后再次进入循环接收检测状态,等待新的数据到来。
FPGA总线控制器的工作流程如图3所示。
图3FPGA总线控制器的工作流程图
FPGA设计的数据转换部分包括UART控制器的实现,从而来控制RS232、RS422和RS485接口所进行的数据收发。数据处理部分主要是完成将数据的第一字节定义为接口序号,当FPGA接收RS232、RS422、RS485接口数据时,在数据前加上接口序号后发送至计算机;当FPGA向外围接口发送数据时,根据接收到的接口序号选择相应的接口,对应关系如表1所示:
表1接口序号与接口类型对应关系
接口序号 接口类型
1 RS232
2 RS422
3 RS485
本文在系统设计中采用模块化设计思想,根据功能的不同我们将UART分为如下几个模块:
1)信号监测器:被用来对外部串行总线进行实时监测,如果实时监测到有数据输入时,通知UART内核接收数据。
2)总线选择器:被用来控制奇偶校验器的输入情况,由数据传输方向可以判断出是数据接收总线还是数据发送总线。如果是接收数据,奇偶校验器的输入为数据接收总线,从而判断接收数据的校验位是否正确,并将结果通知UART内核;如果是发送数据,数据发送总线被总线选择器连接到奇偶校验器的输入端,从而计算发送数据的奇偶校验位。
3)移位寄存器:在串行传输时钟的驱动下,被用来加载输出信号或者是采集输入信号。
4)波特率发生器:用来产生串行总线上数据传输所需的时钟信号。
5)奇偶校验器:根据实际的需要进行奇偶校验的设置,然后根据输入数据计算其奇偶校验位的状态。
6)UART内核:UART内核起到总体控制的功能。系统接收数据时,起到控制波特率发生器和移位寄存器的作用,在波特率时钟的驱动下使移位寄存器同步地接收并保存接收端上的串行数据;系统发送数据时,把奇偶校验器的校验位添加到发送数据中,从而产生包括起始位、数据位、校验位和停止位的完整的发送序列,然后将发送序列加载到移位寄存器里,最后控制波特率发生器来驱动移位寄存器将数据逐位输出。其功能原理如图4所示。
图4UART功能框图
UART的具体实现分为不同的模块,包括顶层模块、波特率发生器、发送模块和接收模块。顶层模块不包括串口收发模块的处理代码,主要是例化各个模块以及响应外部按钮。波特率发生器用于产生时钟信号,用于UART和串行总线之间进行通信。将系统波特率发生器的输出频率定为串口数据传输波特率的8倍,即每个数据位占8个UART采样周期。如果UART采集到4个连续周期的“0”位时,表示接收到一个有效起始位,接着开始接收数据位。对于数据位的识别,是通过对其第4、5、6个采样周期进行采样并且根据多数表决原则来确定的,用户可以在电路板上通过设置开关阵列来实现数据传输速率的选择。
在发送过程中,UART主要执行加载数据和发送数据两个步骤。加载数据是指内核在系统时钟的驱动下,将待发送的数据扩展为包括起始位、数据位、校验位和停止位的串行传输序列后加载至移位寄存器中的过程。之后,内核根据设置来调整波特率,移位寄存器在波特率时钟的驱动下将加载的数据发送到串行总线的发送端。UART发送数据的工作流程图如图5所示。
图5UART发送数据的工作流程图
系统的接收过程中,信号监测器时刻监测串行总线的数据情况,监测到有数据输入的时候触发接收过程。内核重置波特率发生器并设置移位寄存器为波特率工作模式,在波特率时钟的驱动下移位寄存器读取串行总线的输入数据,并送入奇偶校验器中进行奇偶校验。接收过程结束后,内核控制重新设置信号监测器,从而准备新的数据的传输接收流程。整个接收流程如图6所示。
图6UART接收数据的工作流程图
LabVIEW测试程序主要完成对RS232、RS422、RS485总线上发送过来的数据进行存储、显示和对工业设备的监控工作。上位机中LabVIEW测试程序的核心部分是对串口通信的实现。
在测试程序设计中所用到的函数分别是:VISA配置串口、VISA打开与关闭、VISA设置I/O缓冲区大小、VISA写入、VISA读取。
图7LabVIEW数据读写部分的工作流程图
4系统测试
通过某型随动系统对测试系统进行调试,将系统设置为RS485工作模式,并通过RS485接口连接到测试系统电路板上,并用USB总线将测试系统电路板连接到上位计算机中。设置通讯口为COM3,波特率为19200bit/s,无校验位。
首先,测试A系列指令,指定子系统编号为3,命令号为0X01,根据随动系统的协议即对3号系统进行状态查询命令。在发送数据区发送“A301”,在数据接收区接收到数据“D30146855742”,如图8所示。其中“D3”表示第3号系统,“01”表示信息,“4685”表示方位角,“5742”表示高低角。
图8对RS485进行指令1测试
通过以上指令的测试结果可知,该LabVIEW测试程序能够完成RS485接口的数据通信,FPGA中UART模块功能正确。
5结束语以上简要介绍了系统的总体结构和软硬件设计方案,并通过LabVIEW测试程序验证了系统的功能,本文基于FPGA设计的串行通信测试系统能够很好的完成接口转换和数据通信。
随着计算机科学和微电子技术的不断发展,计算机的外围设备接口由很低速的串口模式逐渐转向速度更快、性能更优良的USB接口模式。USB实现的成本低廉,可用于许多个便宜的外设,而在工业使用场合,工业产品中主流的通信接口是RS232、RS422、RS485等接口,所以研究和设计出一种电路能将USB接口和工业主流串行接口进行转换,将带给用户极大的便利。另外,这几种串行接口的传输距离比USB的传输距离大,进行它们之间的接口转换从而可以得到扬长避短的效果。
作者简介:
张振华(1981-),男,江苏徐州人,硕士研究生,研究方向:航空飞行试验机载测试。(原文载于《硅谷》杂志,硅谷网及《硅谷》杂志版权所有,未经允许禁止转载) |
|
|
|
【对“在工业现场中的串行通信测试系统研究与设计”发布评论】 |
版权及免责声明:
① 本网站部分投稿来源于“网友”,涉及投资、理财、消费等内容,请亲们反复甄别,切勿轻信。本网站部分由赞助商提供的内容属于【广告】性质,仅供阅读,不构成具体实施建议,请谨慎对待。据此操作,风险自担。
② 内容来源注明“硅谷网”及其相关称谓的文字、图片和音视频,版权均属本网站所有,任何媒体、网站或个人需经本网站许可方可复制或转载,并在使用时必须注明来源【硅谷网】或对应来源,违者本网站将依法追究责任。
③ 注明来源为各大报纸、杂志、网站及其他媒体的文章,文章原作者享有著作权,本网站转载其他媒体稿件是为传播更多的信息,并不代表赞同其观点和对其真实性负责,本网站不承担此类稿件侵权行为的连带责任。
④ 本网站不对非自身发布内容的真实性、合法性、准确性作担保。若硅谷网因为自身和转载内容,涉及到侵权、违法等问题,请有关单位或个人速与本网站取得联系(联系电话:01057255600),我们将第一时间核实处理。
|
|
|
|