当前位置:首页 > 工业控制 > 电子设计自动化
[导读] 当前应用广泛的串行通信接口标准主要有RS232,RS422和RS485,其中RS232串行通信方式采用单端输入输出,传输距离短、通信速率低、抗干扰性能差;RS485与RS422均采用差分串行输入输出,但RS485只有一对双绞线,只能工作

 当前应用广泛的串行通信接口标准主要有RS232,RS422和RS485,其中RS232串行通信方式采用单端输入输出,传输距离短、通信速率低、抗干扰性能差;RS485与RS422均采用差分串行输入输出,但RS485只有一对双绞线,只能工作于半双工模式;RS422采用全双工通信模式,通过两对双绞线可实现双向收发互不影响,且传输速率可达10 Mbit·s-1,传输距离可达2 000 m。以RS422通信协议为代表的串行通信在数据通信吞吐量较小的微处理电路中应用更加简便、灵活,尤其在远距离信息传输中更发挥着不可替代的作用。

1 硬件电路设计

设计主要使用Altera公司的EP3C80F78017和ADI公司的ADM2687EBRIZ。RX+、RX-为差分信号输入端口,差分信号经U2解差分后传输到U1中,通过其中数据接收模块的处理,传送并行数据给CPU。CPU发送的并行数据,经U1中的数据发送模块处理输出待处理的TTL信号,通过U2差分处理后输出差分信号到总线上,TX+、TX-为差分信号输出端口。U1同时接收CPU输出的控制信号,以完成对通信参数的调整。其设计原理如图1所示。

2 软件程序设计

2.1 FPGA整体模块

clk为全局时钟输入端,rst_n为全局复位端,syn_awe为写使能命令端,syn_are为读使能命令端,syn_aoe为输出使能命令端,EA为地址总线数据端,ED为数据总线数据端,rxd_xi为串行数据输入端,txd_xo为串行数据输出端。

divider为时钟产生模块,主要产生通信波特率采样时钟;txd为UART数据发送模块,进行数据并串转换;rxd为UART数据接收模块,进行数据串并转换;uart_wr_ctl为总线解析模块,主要负责解析CPU总线命令,控制其他模块的工作状态;uart422_state_reg为UART工作状态模块,综合rxd和txd的工作状态并输出;uart_rdout_sel为数据输出选择模块,其主要控制总工作状态数据与UART接收数据的选择输出。

2.2 时钟产生模块

模块主要为UART数据收发模块提供了工作时钟,根据时钟分频系数对输入的全局时钟进行计数处理,输出UART通信波特率16倍的分频时钟频率。将时钟分频系数加1,除去全局时钟频率,则等于分频时钟频率。

clk为全局时钟输入端,rst_n为模块复位端,enable为模块使能端,factor为时钟分频系数输入端,clk_out为分频时钟输出端。本模块采用计数分频的设计思想,当计数值大于factor值1/2时,clk_out输出为高电平,反之则输出低电平。

2.3 UART数据发送模块

UART数据发送模块设计简单,主要根据输入的控制信号,对输入的并行数据进行并串转换,并以控制信号要求的数据帧格式和波特率采用LSB模式发送出去。模块在接收到有效的8位并行数据后,根据控制信号命令,按串行数据帧格式,起始增加1位起始位0,然后根据控制信号命令决定是否添加奇偶校验位,再在尾部增加1位或2位停止位1,最后组成通信双方约定的数据帧格式发送出去。

clk为模块工作时钟输入端,rst_n为模块复位端,clk_en为时钟使能端,enable为模块使能端;ctrl_i为控制信号输入端。其中,ctrl_i[3]控制使能发送奇偶校验,ctrl_i[2]控制奇偶校验选择,ctrl_i[1]控制停止位的个数,ctrl_i[0]控制数据启动发送;data_i为待发送数据输入端,frame_bits_i为帧数据位数输入端,txd_xo为数据发送端,st at_o为发送状态输出端。其中,stat_o[1]为发送器完成发送标记位,star_o[0]为发送缓冲器数据载入完成标记位。UART数据发送模块状态机,如图5所示。

2.4 UART数据接收模块

由于外部使用环境的影响,RX输入线上可能产生毛刺。为减小这一影响,该模块设计时采用“多数表决法”,具体处理方法是在一个数据位中间取3个点的采样电平值,若少于2个点为电平“1”,则将该数据位判为电平“0”,否则判为电平“1”。

clk为模块工作时钟输入端,rst_n为模块复位端,clk_en为时钟使能端,enable为模块使能端,rxd_xi为UART数据接收端,ctrl_i为控制信号输入端。其中,ctrl_i[2]控制使能接收奇偶校验,ctrl_i[1]控制奇偶校验选择,ctrl_i[0]控制读UART数据缓冲器使能,frame_bits_i为帧数据位数输入端,data_o为已接收数据输出端,stat_o为接收状态输出端。其中,stat_o[3]为帧错误标记位,stat_o[2]为接收缓冲器数据溢出标记位,stat_o[1]为校验错误标记位,stat_o[0]为数据完成接收标记位。UART数据接收模块状态机,如图7所示。

2.5 总线解析模块

本模块主要根据地址总线数据和数据总线数据,以及输出使能和读写使能命令信号,产生对其他模块的控制信号和片选信号,即解析了总线命令。

clk为全局时钟输入端,rst_n为模块复位端,syn_awe为写使能命令端,syn_are为读使能命令端,syn_aoe为输出使能命令端,EA为地址总线数据端,ED为数据总线数据端,divider_factor为输出时钟产生模块时钟分频系数,divider_enable为输出时钟产生模块使能命令信号,rxd_clk_en为输出UART数据接收模块时钟使能命令信号,rxd_ctrl_i为输出UART数据接收模块控制命令信号,rxd_frame_bits_i为输出UART数据接收模块帧数据位数,rxd_enable为输出UART数据接收模块使能命令信号;txd_clk_en为输出UART数据发送模块时钟使能命令信号,txd_data_i为输出UART数据发送模块待发送数据,txd_enable为输出UART数据发送模块使能命令信号,txd_ctrl_i为输出UART数据发送模块控制命令信号,txd_frame_bits_i为输出UART数据发送模块帧数据位数;data_rd_cs为读UART接收数据命令选择端,uart_state_reg_cs为读总工作状态数据命令选择端。

2.6 UART工作状态模块

模块主要是将输入的UART数据接收模块状态数据与UART数据发送模块状态数据合并为总工作状态数据,并进行输出。

rx_stat_o为UART数据接收模块状态数据的输入端,tx_stat_o为UART数据发送模块状态数据的输入端,uart422_state_out为总工作状态数据输出端。

2.7 数据输出选择模块

模块主要根据输入的读数据命令选择信号,对输入的总工作状态数据和UART接收数据,进行选择输出。

clk为全局时钟输入端,uart_sta_reg_out为总工作状态数据输入端,data_out为UART接收数据输入端,data_rd_cs为读UART接收数据命令选择端,uarrt_state_reg_cs为读总工作状态数据命令选择端,EDO_422为所选数据输出端。

3 仿真结果

在Modelsim_SE10.1b的开发环境下,对FPGA源代码进行逻辑综合仿真,其仿真结果如图11~图18所示。仿真结果表明,设计实现了预期的各种逻辑功能,收发数据准确无误。图19和图20分别为CPU发送和接收的数据,图中所示数据与FPGA仿真结果一致。

4 结束语

设计灵活简单,并可动态调整通信波特率和数据位及停止位长度,还可选择是否使能数据奇偶校验功能,较好地实现了RS422串行总线之间的数据传输,从而大幅增强了设计的可靠性和通用性。后期测试使用证明了,该接口电路设计具有较高的稳定性和实用性,并可用于RS422通信的诸多场合。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在数字化浪潮席卷全球的今天,FPGA技术正成为驱动创新的核心引擎。2025年8月21日,深圳将迎来一场聚焦FPGA技术与产业应用的盛会——2025安路科技FPGA技术沙龙。本次沙龙以“定制未来 共建生态”为主题,汇聚行业...

关键字: FPGA 核心板 开发板

在现代电子系统中,现场可编程门阵列(FPGA)凭借其开发时间短、成本效益高以及灵活的现场重配置与升级等诸多优点,被广泛应用于各种产品领域。从通信设备到工业控制,从汽车电子到航空航天,FPGA 的身影无处不在。为了充分发挥...

关键字: 可编程门阵列 FPGA 数字电源

2025年8月4日 – 提供超丰富半导体和电子元器件™的业界知名新品引入 (NPI) 代理商贸泽电子 (Mouser Electronics) 即日起开售Altera®的Agilex™ 3 FPGA C系列开发套件。此开...

关键字: FPGA 边缘计算 嵌入式应用

内窥镜泛指经自然腔道或人工孔道进入体内,并对体内器官或结构进行直接观察和对疾病进行诊断的医疗设备,一般由光学镜头、冷光源、光导纤维、图像传感器以及机械装置等构成。文章介绍了一款基于两片图像传感器和FPGA组成的微型3D内...

关键字: 微创 3D内窥镜 OV6946 FPGA

运用单片机和FPGA芯片作为主控制器件 , 单片机接收从PC机上传过来的显示内容和显示控制命令 , 通过命令解释和数据转换 , 生成LED显示屏所需要的数据信号和同步的控制信号— 数据、时钟、行同步和面同步 。FPGA芯...

关键字: 单片机 FPGA LED显示屏

在异构计算系统中,ARM与FPGA的协同工作已成为高性能计算的关键架构。本文基于FSPI(Fast Serial Peripheral Interface)四线模式,在150MHz时钟频率下实现10.5MB/s的可靠数据...

关键字: ARM FPGA FSPI

在全球FPGA市场被Xilinx(AMD)与Intel垄断的格局下,国产FPGA厂商高云半导体通过构建自主IP核生态与智能时序约束引擎,走出差异化高端化路径。本文深入解析高云半导体FPGA工具链的两大核心技术——全栈IP...

关键字: FPGA 高云半导体

2025年6月12日,由安路科技主办的2025 FPGA技术沙龙在南京正式召开,深圳市米尔电子有限公司(简称:米尔电子)作为国产FPGA的代表企业出席此次活动。米尔电子发表演讲,并展出米尔基于安路飞龙派的核心板和解决方案...

关键字: FPGA 核心板 开发板

高 I/O、低功耗及先进的安全功能,适用于成本敏感型边缘应用

关键字: FPGA I/O 机器视觉

本文讨论如何为特定应用选择合适的温度传感器。我们将介绍不同类型的温度传感器及其优缺点。最后,我们将探讨远程和本地检测技术的最新进展如何推动科技进步,从而创造出更多更先进的温度传感器。

关键字: 温度传感器 CPU FPGA
关闭