当前位置:首页 > EDA > 电子设计自动化
[导读]1 前言 随着FPGA的飞速发展与其在现代电子设计中的广泛应用,越来越多的实验和设计中会运用FPGA与RS232通信。与此同时, FPGA具有功能强大、开发过程投资小、周期短、可反复编程等特点。笔者在FPGA芯片上集成了串行

1 前言
随着FPGA的飞速发展与其在现代电子设计中的广泛应用,越来越多的实验和设计中会运用FPGA与RS232通信。与此同时, FPGA具有功能强大、开发过程投资小、周期短、可反复编程等特点。笔者在FPGA芯片上集成了串行接收功能模块,从而简化了电路、缩小了电路板的体积、提高了可靠性。本文主要介绍围绕FPGA所设计的符合 RS232标准的串行接收模块
2 异步串行通信原理
串行通信分为两种类型:同步通信方式和异步通信方式。本设计采用的是异步通信方式,其的特点是:通信的发送方和接收方各自有独立的时钟,传输的速率由双方约定。国际上规定的一个串行通信波特率标准系列是:110、300、600、1200、1800、2400、4800、9600、 19200,单位是 bps。本文采用的是 19200bps。
异步传输是一个字符接一个字符传输。一个字符的信息由起始位、数据位、奇偶校验位和停止位组成。每一个字符的传送靠起始位来同步,字符的前面是一位起始位,用下降沿通知接收方传输开始,紧跟着起始位之后的是数据位,传输时低位在前、高位在后,字符本身由5~8位数据位组成。数据位后面是奇偶校验位,昀后是停止位,停止位是高电平,标志一个字符的结束,并为下一个字符的开始传送做准备。停止位后面是不定长度的空闲位。停止位和空闲位都规定高电平,这样可以保证起始位开始处有一个下降沿,如图1所示。 3 硬件接口电路原理设计
在串行通信中,普遍采用的是 RS232-C接口的标准。 RS232-C接口信号引脚的连接方式规定了25芯的D型连接器DB-25,本设计采用的是一个 9芯的D型连接器DB-9,并且用昀为简单常用的三线制接法,即地、接受数据和发送数据三脚相连。

500)this.style.width=500;" border="0" />
本设计的硬件接口电路图如图2所示,由三部分组成: FPGA串口接收模块、 MAX232和DB-9。FPGA采用的是Xilinx公司的SPARTAN系列的 XC2S50芯片,其封装为TQ144。 MAXIM公司的MAX232CPE是为满足EIA/TEA-232E的标准而设计的,具有功耗低、波特率高、价格低等优点。工作电源为 +5V,外界电容仅为 luF,为双组 RS-232收发器。MAX232有两个发送器,本设计只用其中一个发送器,另外一个发送器的输入端接地、输出端悬空。
异步数据接收过程可作为一个整体来实现,数据由 DB-9的RxD端输入,经过 MAX232进行电平转换由FPGA串口接收模块的 RxD端进入,然后在串口接收模块内部对接收来得数据进行判断,并昀终实现对FPGA输出信号的控制。

500)this.style.width=500;" border="0" />

4 FPGA接收串行数据的软件设计
本方案采用的串行异步通信的帧格式为:1位起始位+5位数据位+1位停止位。经检测与分析,如果已经确定异步通信的帧格式,那么每个字符就可以分别用固定的 7位数据表示。比如:字符‘ 0’:‘0000011’;字符‘ 1’:‘0100011’。其中第 1位数据‘ 0’为起始位,昀后 1位数据‘1’为停止位,中间 5位数据为数据位。例如:用串口调试助手软件发送字符串‘100’,则会在 FPGA的 RxD引脚测得如图 3的波形。其中, st1,st2,st3表示先后发送的 3个字符, t1,t2,t3则表示对每个字符进行检测时所经过的 3种状态。
正如图3波形所示,接收逻辑首先通过检测输入数据的下降沿来检查起始位。然后产生接收时钟,利用接收时钟来采样串行输入数据。由于字符‘0’和‘1’在5位数据位中的仅第一位有区别,因此只要准确地将第一位数据检测出来就可以得出串口调试助手所发送的字符串。再利用移位操作,将字符串存储在缓存器(即另一组可以更新的字符串)中。

 500)this.style.width=500;" border="0" />


至于剩下的4位数据位和一位停止位,就可以不随接收时钟采样。待串口调试组手发送的字符串全部存储之后,一起在该模块中进行判断,并根据字符串的不同来控制FPGA不同的输出。接收时钟是根据数据传输的波特率产生的:接收时钟= 16×19200Hz。它始于起始位的下降沿,终于第5位数据位的上升沿。下面是实现检测第1个字符的VHDL源程序。 


if(clk0'event and clk0='1')then ----外部时钟
case state is
when st1=> ----第1 个字符开始
case tate is
when t1=> ----起始位开始
if(rxd='1')then ----未到下降沿不计数
cnt16 <= "0000";
cnt48 <= "000000"; ----所有时钟清零
else cnt16 <=cnt16+1; ----下降沿来,起始位计数开始
end if;
if(cnt16="1111")then
tate <= t2; ----起始位完,进入数据位
end if;
when t2=> ----进入第1 位数据位
if(cnt16="1111")then
cnt16 <= "0000";
else cnt16 <= cnt16+1;
end if;
if(cnt16="0011")then
sdata <= rxd; ----采样第1 位数据位
end if;
if(cnt16="0111")then
if(sdata='0')then
data(0)<='0';
else data(0)<='1'; ----判断采样值,如果为0,则发送字符为0,
反之亦然
end if;
end if;
if(cnt16="1111")then
tate <= t3; ----第1 位数据位完,进入下一状态
end if;
when t3=> ----进入第2 位,第3 位和第4 位数据状态
if(cnt16="1111")then

cnt48 <= "000000";
else cnt48 <= cnt48+1; ----不对剩下的数据采样,直接计数
end if;
if(cnt48="101111")then
sdata <='0'; ----采样位清零
tate <= t1; ----进入采集下一字符的准备状态
state <= st2; ----第1 个字符采集完,进入下一字符
end if;
end case;
fdata(0) <= data(0); ----采集完的字符存入缓存区
…… …… ……

 

对每个字符的采集过程是相同的。笔者根据实际需要只让计算机发送 3个二进制字符,由此能控制 FPGA的 8种输出状态。在整个 VHDL源程序编写完之后,用 Modelsim 6.0进行仿真,如图 4。
 

500)this.style.width=500;" border="0" />

鉴于发送字符与其异步传输帧格式的特殊关系,此仿真中的 rxd用周期为 16×clk0的波形代替,因此就会接收到字符串‘ 111’。串口调试助手需要每隔一段时间(大于 1ms)发送一组字符串,则等待状态 st4是必须的,它也是接收下一字符的准备状态。缓存区为 3位空数组 fdata,它在接收下一字符之前必须清零。
5 结语
尽管目前串行通信速度慢的特点已经越来越明显,但是因为其传输线少且成本低,多数电子产品开发中都会继续使用串行通信。本文所介绍的串行接收模块是笔者根据实验要求自行设计,并在实验中成功地完成了计算机对 FPGA的准确控制。因此,本文也可作为一个实例,供开发者交流。
本文作者创新点:计算机串口按 ASCII码发送“0”和“1”组成的字符串,在 FPGA内部只需判断接收到的数据流中的每个起始位之后的第一位数据位,就可昀终得出计算机发送的字符串。此种方法使 FPGA能够简便、准确的识别串口数据,且可以方便地修改为任何一种异步通信帧格式。

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

阿布扎比和沙特正在权衡,是否在瑞信(Credit Suisse)股价低迷之际,对该行的投资银行和其他业务进行投资。阿联酋和沙特在分别探索通过各自的主权基金,例如阿布扎比穆巴达拉发展公司和沙特公共投资基金(PIF)进行潜在...

关键字: MICHAEL UI SE PI

摩根大通(JPMorgan Chase)首席执行官戴蒙(Jamie Dimon)预测,美国经济可能在明年陷入衰退。他警告称,经济低迷可能在信贷市场引发“恐慌”,令美国股市价值再蒸发20%。花旗集团(Citigroup)首...

关键字: CE SE MORGAN GROUP

最近为什么越来越多的研究开始利用FPGA作为CNN加速器?FPGA与CNN的相遇究竟能带来什么神奇效果呢?原来,FPGA拥有大量的可编程逻辑资源,相对于GPU,它的可重构性以及高功耗能效比的优点,是GPU无法比拟的;同时...

关键字: FPGA 可编程逻辑资源 GPU

FPGA的应用领域包罗万象,我们今天来看看在音乐科技领域及医疗照护的智能巧思。

关键字: FPGA 科技领域 智能

据全球最大石油生产商沙特阿美(Saudi Aramco)称,全球石油市场依然紧张。对于一个仍然严重依赖化石燃料的世界来说,这不是一个好兆头。沙特阿美CEO Amin Nasser表示,如今闲置产能非常低。如果亚洲重新开放...

关键字: NAS RAM SE CE

强大的产品可降低信号噪音并提高分辨率与动态

关键字: Spectrum仪器 数字化仪 FPGA

最近某项目采用以太网通信,实践起来有些奇怪,好像设计成只能应答某类计算机的ICMP(ping)命令, 某类计算机指的是Windows特定系统,其他系统发送ping都不能正确识别。

关键字: 嵌入式Linux FPGA 协议

近两年,国外厂商的FPGA芯片价格飙升,由于价格,货期,出口管制等多方面因素的影响,很多公司都在寻找FPGA国产化替代方案。我工作中正在使用的几款芯片也面临停产的风险,用一片少一片,了解到国产FPGA发展的也不错,完全自...

关键字: FPGA 芯片 EDA

摩根大通(JPMorgan Chase)首席执行官戴蒙(Jamie Dimon)预测,美国经济可能在明年陷入衰退。他警告称,经济低迷可能在信贷市场引发“恐慌”,令美国股市价值再蒸发20%。投资者密切关注戴蒙的经济声明,亿...

关键字: CE 华尔街 SE MORGAN

(全球TMT2022年10月11日讯)Autowise.ai仙途智能宣布获得商汤国香资本等机构B3轮战略投资,这是公司今年7月以来第二轮融资,融资将主要用于自动驾驶车辆研发制造和市场扩张,尤其是海外业务落地。...

关键字: 人工智能 芯片 新思科技 SE

电子设计自动化

21191 篇文章

关注

发布文章

编辑精选

技术子站

关闭