新闻中心

EEPW首页 > 电源与新能源 > 设计应用 > FPGA单片机带你领略如何实现多机串行通信网络

FPGA单片机带你领略如何实现多机串行通信网络

作者:时间:2014-01-16来源:网络收藏

随着电子技术和EDA技术的发展,技术以其独有的优势,在电子设计领域得到越来越广泛的应用。具有集成度高、体积小和功耗低等优点,而且还具有用户可编程能力。采用器件可以大大缩短开发周期,减少资金投入,实现片上可编程系统(SOPC)的设计。同时,测控系统中使用串行扩展通信的趋势越来越突出,但是传统总线拓扑结构较低的响应效率已经不能满足复杂系统的要求。本文的主要目的是基于FPGA设计一个集成16个简单UART(通用异步接收发送设备)的模块,该模块采用VHDL语言描述。主通过并口与FPGA相连,FPGA通过16个UART分别与16个从相连,实现系统。

本文引用地址:http://www.amcfsurvey.com/article/226915.htm

1 系统硬件总体设计

系统设计要求主单片机能同时控制从单片机,并且能同时采集从单片机上传的信息,进行判断并传送给上位机。主单片机功能主要有:

① 与上位机通信,接收上位机命令并解析;

② 根据上位机命令,向下控制从单片机;

③ 监测从单片机中上传的各种指标是否符合要求;

④ 提供告警显示。

FPGA完成主单片机命令的解复接和从单片机上传信息的复接。从单片机主要功能为接收主单片机通过FPGA下发的命令,完成对设备的控制并上传设备状态,如图1所示。

FPGA单片机带你领略如何实现多机串行通信网络

图1 单片机多机通信原理示意图

本设计中使用的单片机为Cygnal公司的C8051F系列单片机,FPGA为Xilinx公司的XC3S100E。C8051F系列单片机是Cygnal公司开发的高端单片机,指令与8051兼容,最高具有25 MIPS的处理能力,同时集成了ADC、DAC、可编程放大器、电压比较器、传感器等丰富的外设,非常适合应用于测控领域。C8051F系列单片机还具有JTAG接口,方便用户在线调试,极大节省了用户的开发时间。2 系统实现

2.1 主单片机单元设计

主单片机采用C8051F020单片机,该单片机提供2个串口、1个I2C接口(SMBus),提供P0~P3或P4~P7的并口。本设计中,设置特殊功能寄存器EMI0CF=0x27,使外部存储器接口工作在地址/数据复用方式,选择高端口P4~P7。设置特殊功能寄存器XBR0=0x15,将串口UART0和SMBus映射到P0端口。

C8051F020将FPGA视为外部存储器,通过并口P4~P7进行访问。C8051F020通过SMBus接口连接串行EEPROM,将系统信息实时写入EEPROM,在系统突然掉电后上电时读取EEPROM内的数据,完成系统掉电保护功能。主单片机连续不停地分析从单片机上传的指令,判断设备的状态并给出告警显示,同时存入内部缓冲区等待上位机查询。

C8051F020提供串口和网口2种方式与上位机通信,两个接口不能同时使用。网络通信采用网口串口转换模块实现,网口和串口通过组合逻辑电路连接到C8051F020的UART0,如图2所示,实现系统的本地监控和远程监控功能。

FPGA单片机带你领略如何实现多机串行通信网络

图2 主单片机串口和网口连接示意图

2.2 FPGA单元设计

FPGA的设计是通信网络的核心部分。依据功能要求,FPGA内部划分成四大功能模块:SRAM控制器、发送数据缓冲模块、16个UART模块、接收数据缓冲模块。发送数据缓冲模块划分成16个RAM区,每个RAM区分别连接1个UART,当发送缓冲模块接收到主单片机下发的控制数据后,启动UART将数据发送至从单片机。接收缓冲区同样分为16个RAM区,发送控制数据后,UART周期性地向从单片机发送状态查询命令,从单片机将最新状态发送至UART模块,UART模块将数据存入接收缓冲模块相应的RAM区。如图3所示。

FPGA单片机带你领略如何实现多机<a class=串行通信网络" style="b

fpga相关文章:fpga是什么


单片机相关文章:单片机教程


单片机相关文章:单片机视频教程


单片机相关文章:单片机工作原理


通信相关文章:通信原理



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭