基于FPGA的单片机多机串行通信系统技术方案

技术编号:5257638 阅读:334 留言:0更新日期:2012-04-11 18:40
本实用新型专利技术涉及一种基于FPGA的单片机多机串行通信系统,系统采用FPGA实现集成16个简单UART的串行通信系统,由微型计算机、1个主单片机、1个FPGA、16个从单片机组成,计算机、主单片机、FPGA依次连接,FPGA分别与16个从单片机连接,FPGA通过16个UART分别与16个从单片机相连,实现一个主单片机同时访问16个从单片机,系统结构简单,该模块通信方式完全遵守通用串行通信协议,在监督计算机控制系统(SCC)和集散型控制系统(DCS)中有广泛的应用价值。(*该技术在2019年保护过期,可自由使用*)

【技术实现步骤摘要】

本技术涉及通信和测控领域,特别涉及一种基于FPGA的单片机多机串行通 信系统。
技术介绍
随着测控技术的发展,由多单片机构成的测量控制网络在测控领域的应用越来越 广泛。单片机之间的数据交换通常采用串行通信方式,连接方式多采用总线拓扑结构。该 结构中单片机通过一组数据线相连接,所有单片机共用一组数据线;通信时要对从单片机 进行编址,主单片机通过不同的地址来访问从单片机。由于只有一组数据线,那么在同一时 间内,主单片机只能和一个单片机进行通信。如果要访问一遍从单片机,那么主单片机要首 先发送某一个从单片机的访问命令,等其应答后才能访问下一个从单片机。这样就浪费的 大量的时间,降低了测控系统的工作效率。在某些监督计算机控制系统(see)和集散型控 制系统(DCS)中,主单片机经常需要同时访问从单片机,要求从单片机能同时响应主单片 机的访问命令,此时,现有的拓扑型总线结构就不能满足要求。
技术实现思路
鉴于现在技术存在的问题,本技术提供一种结构简单,基于FPGA设计一个集 成16个简单UART (通用异步接受发送设备)的模块,主单片机与FPGA相连,FPGA通过16 个UART分别与16个从单片机相连,实现一个主单片机同时访问16个从单片机,使拓扑型 总线结构满足系统要求。本技术的技术方案是基于FPGA的单片机多机串行通信系统是采用FPGA (现 场可编程门阵列电路)实现集成16个简单UART(通用异步接收发送设备)的串行通信系 统,系统主要由微型计算机、1个主单片机、1个FPGA、16个从单片机组成。其特征在于计 算机、主单片机、FPGA依次连接,FPGA分别与16个从单片机连接。所述的基于FPGA的单片 机多机串行通信系统,其中,计算机与主单片机通过通用串行接口 RS232/485/422连接,主 单片机是通过并口与FPGA通讯,FPGA与16个从单片机通过通用串行接口 RS232/485/422 连接。本技术结构简单,基于FPGA设计一个集成16个简单UART (通用异步接受发 送设备)的模块,主单片机与FPGA相连,FPGA通过16个UART分别与16个从单片机相连, 实现一个主单片机同时访问16个从单片机,主单片机需要同时访问从单片机时,多个从单 片机能同时响应主单片机的访问命令,可满足系统的要求,通过该系统,计算机主机可以同 时访问16个从单片机。该模块通信方式完全遵守通用串行通信协议。在监督计算机控制 系统(SCC)和集散型控制系统(DCS)中有广泛的应用价值。附图说明图1.单片机多机通信原理示意图,并作为摘要附图;图2.主单片机串口和网口连接示意图;图3. FPGA内部功能模块示意图;图4.有限状态机状态转移图。具体实施方式如图1至图4所示,主单片机能同时控制从单片机,并且能同时采集从单片机上传 的信息,进行判断并传送给上位机。主单片机功能主要有1)与上位机通信,接收上位机命 令并解析;2)根据上位机命令向下控制从单片机;3)监测从单片机中上传的各种指标是否 在符合要求;4)提供告警显示。如图1所示,FPGA完成主单片机命令的解复接和从单片机上传信息的复接。从单 片机主要功能为接收主单片机通过FPGA下发的命令,完成对设备的控制并上传设备状态。 本技术中使用的单片机为Cygnal公司的C8051F系列单片机,FPGA为XILINX公司的 XC3S100E。C8051F系列单片机是Cygnal公司开发的高端单片机,指令与8051兼容,最高 具有25MIPS的处理能力,同时集成了 ADC、DAC、可编程放大器、电压比较器、传感器等丰富 的外设,非常适合应用于测控领域。C8051F系列单片机还具有JTAG接口,方便用户在线调 试,极大节省了用户的开发时间。主单片机采用C8051F020单片机,该单片机提供2个串 口、一个I2C接口(SMBus),提供P0 P3或P4>7的并口。本设计中,设置特殊功能寄存器 EMI0CF = 0x27,使外部存储器接口工作在地址/数据复用方式,选择高端口 P4 P7。设置 特殊功能寄存器XBR0 = 0x15,将串口 UART0和SMBus映射到P0端口。C8051F020将FPGA视为外部存储器,通过并口 P4>7进行访问;C8051F020通过 SMBus接口连接串行EEPR0M,将系统信息实时写入EEPR0M,在系统突然掉电后上电时读取 EEPR0M内的数据,完成系统掉电保护功能。主单片机连续不停的分析从单片机上传的指令, 判断设备的状态给出告警显示,同时存入内部缓冲区等待上位机查询。如图所示,2C8051F020提供串口和网口 2种方式与上位机通信,两个接口不能 同时使用。网络通信采用网口串口转换模块实现,网口和串口通过组合逻辑电路连接到 C8051F020的UART0,实现系统的本地监控和远程监控功能。FPGA的设计是通信网络的核心部分,依据功能要求,FPGA内部划分成四大功能模 块SRAM控制器、发送数据缓冲模块、16个UART模块、接收数据缓冲模块。发送数据缓冲模 块划分成16个RAM区,每个RAM区分别连接一个UART,当发送缓冲模块接收到主单片机下 发的控制数据后,启动UART将数据发送至从单片机;接收缓冲区同样分为16个RAM区,发 送控制控制数据后,UART周期性向从单片机发送状态查询命令,从单片机将最新状态发送 至UART模块,UART模块将数据存入接受缓冲模块相应的RAM区。如图3。FPGA内部共有 16对读写和数据总线,分别连接UART和相应的发送缓冲区RAM和接收缓冲区RAM。FPGA内部模块采用自顶向下的设计方法,将复杂系统划分为简单系统,然后通过 逻辑和接口设计实现各个模块功能。SRAM控制器用于FPGA和C8051F020的接口,负责内 部RAM的读写控制。UART负责接收从单片机上传的串行信号,将其并行化存入接受数据缓 冲RAM ;另外也负责将发送缓冲RAM中的数据转换成符合RS232协议规范的串行信号发送 给从单片机。SRAM控制器和UART模块同样采用自顶向下的方式实现,关于SRAM控制器及 UART的FPGA实现方案在参考文献中有详细的论述,本文不再介绍。FPGA内部系统采用同步有限状态机(FSM)的设计方法实现,FSM负责调配各功能模块之间的协作。状态机采用 独热(one-hot)编码,使电路的可靠性和速度有显著的提高。系统状态转移图如图4所示。主单片机和上位机的通信速率及FPGA和从单片机的通信速率均设置为 38. 4Kbps,主要可以更精确的控制主单片机与各个从单片机之间的通信时间。通信指令 由报头、设备类型、设备号、命令号、命令数据、校验等部分字段组成,报头用于通知单片机 开始串行通信,设备类型和设备号用于指令正确传达到相应的设备,命令号用于通知单片 机指令的功能,命令数据用于通知单片机具体的功能,校验采用CRC校验,保证通信的准确 性,避免错误指令干扰系统。通信指令的帧格式如下,写入控制命令号为00H,读取命令号为 01H,读取指令命令数据为0字节。<table>table see original document page 5</column>本文档来自技高网...

【技术保护点】
一种基于FPGA的单片机多机串行通信系统,主要由微型计算机、主单片机、FPGA、16个从单片机组成,其特征在于:计算机、主单片机、FPGA依次连接,FPGA分别与16个从单片机连接。

【技术特征摘要】

【专利技术属性】
技术研发人员:张晓峰张志利王文博曹鹏飞陈伟峰
申请(专利权)人:天津光电通信技术有限公司
类型:实用新型
国别省市:12[中国|天津]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1