原创 [博客大赛]CPLD入门笔记3----串口的发送与接收

2014-4-29 14:29 2506 9 15 分类: FPGA/CPLD 文集: CPLD入门笔记

这两天写了个串口发送的程序,串口发送与接收,在单片机看来,很简单,也许调用几条语句,就能实现所需要的功能,而CPLD实现起来,便应当了解到具体数据的传输操作。类似大多数传输协议,串口也有自己的传输协议。如下图所示

串口的数据传输形式有多种,而大多数形式是起始位(位宽为1)、数据位(位宽为8)、校验位(位宽为1)、停止位(位宽为1)。便按照这种形式来写,注意串口总线“高电平”是默认的状态,起始位应当拉低电平,此后为8个数据位,然后是校验位和停止位。这里将校验位和停止位置为高电平。

另外,串口传输一个重要的参数为波特率,波特率决定数据传输的正确性,如果波特率不准确,数据传输毫无意义可言。波特率----数据信号对载波的调制速率,它用单位时间内载波调制状态改变次数来表示,其单位为波特(Baud)。波特率作为串口传输速度,它表征的是1个位(bit)的传输周期,常用波特率为9600bps和115200bps,以115200bps为例,即数据传输的速度为每秒115200bit,也就是115200/8=14400Byte。板载的时钟为48MHz的有源晶振,若应用于波特率,需要进行分频,设置变量Counter计数48_000_000/115200 = 416,即计数416个上升沿,波特率时钟模块产生一个上升沿。而数据的传输则要在电平稳定是进行,即时钟计数发生在边沿有效,数据计数发生在电平有效。

写程序时,按照模块机制来写,会更简单明了,不是程序简单了,而是系统分为几部分,完成子模块的功能,子模块与子模块连接采用wire型变量,这样便于维护和修改。类似于之前的脉冲电源,分割为恒流源部分、逆变部分、反馈调节部分、输出调节部分、温度控制调节部分。这样分隔为部分,每个部分稳定可靠运行,再结合成系统。但想法正确,有可能

写出来不是一把好使的。

发现复位后总是出现一帧数据,然后就没有数据了,应该是数据传输后没有复位到初始值,查到上述情况,将if(BPS_CLK)屏蔽后,就可以看到连续信号,因为不屏蔽,isDone不能拉低为零,这样不能返回脉冲信号。另外,用串口调试助手看时,串口调试助手默认设置是这种情况,8位数据位、None校验位、1位停止位,所以用它看时会出错,可以用示波器看。

 

PARTNER CONTENT

文章评论6条评论)

登录后参与讨论

用户1711475 2014-4-28 17:12

内容不错,如果排版更清爽一点就更好了

用户438660 2014-4-14 08:59

期待楼主 串口与高速CAN的发送和接收

用户1670771 2014-4-11 23:50

好,会的,谢谢

用户403664 2014-4-10 10:33

最好还是在编辑框内插入图片吧,上传附件的形式不够直观哟~

用户1670771 2014-4-10 09:51

谢谢前辈,想着通过SPI通讯从EEPROM读值,再传输给DA输出,按键选择正弦波、方波、三角波,正在努力中。。。

残弈悟恩 2014-4-10 07:45

加油,先学学CPLD,以后才能更好的完FPGA吗,你说了?
相关推荐阅读
用户1670771 2014-04-29 14:32
[博客大赛]CPLD入门笔记1----点亮LED
今天看了CPLD的教程,发现可编程芯片几乎都是以点亮LED作为最开始的入门实验,无论51单片机、STM8单片机、STM32单片机亦或是其他的芯片,感觉都是在控制它的引脚的电平,主要是了解如何让指定...
用户1670771 2014-04-29 14:30
[博客大赛]CPLD入门笔记----初叩Verilog的大门
初次接触CPLD,初次接触Verilog,记录下自己学习的痕迹。 刚开始接触CPLD,曾听说CPLD/FPGA属于硬件层的可编程芯片,而Verilog属于硬件描述语言,其它便不知道了,感觉无从...
用户1670771 2014-04-29 14:29
[博客大赛]CPLD入门笔记2----驱动蜂鸣器
驱动蜂鸣器的实验,实验参考EDN网站的akuei2的SOS的思想,利用蜂鸣器鸣叫不同时间模拟SOS,但遇到的问题。   一开始程序写好后,下载到板子上,蜂鸣器几乎没有声音输出,或者说很小的...
用户1670771 2014-04-23 14:47
Verilog中case结构不能调用例化模块,但可以应用task或者function,task及其应用
任务就是一段封装在“task-endtask”之间的程序。任务是通过调用来执行的,而且只有 在调用时才执行,如果定义了任务,但是在整个过程中都没有调用它,那么这个任务是不会 执行的。调用某个任...
用户1670771 2014-04-16 17:33
对轨对轨芯片的一点理解
    今天抄一块20mW激光器的板,板上有一个运放AD8552,查看参数时,发现这么一点“rail to rail”,查看了别的芯片,有的没有这个参数,“轨对轨”,便在网上搜了资料,同时在板上给...
EE直播间
更多
我要评论
6
9
关闭 站长推荐上一条 /3 下一条