Uart串口设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Uart串口设计总结及实验
QinZhanAo
1.串口说明
电脑上通常位Rs232口,为9针口,可以在机箱后面找到。现在基本上都用USB转串口来实现串口的功能,需要注意的是,如果用USB转串口来实现串口功能的话,需要下载安装USB转串口驱动,否则不能实现。台式机可以直接用串口线来实现,而一般笔记本已经没有串口了,那么必须用USB转串口。
2.串口发端设计
2.1发端时序
串口发送数据端的时序如下图所示。
从时序图上可以看出,需要发送的数据低位先发出去,在发送数据之前,需要先发送一个开始特征比特,值为0,TXD数据线空闲状态为1。发送完数据最高位后发送一个停止比特,值为1。
2.2 设计思路
设计时钟:
根据前述的SPI模块设计时提出的一个思想:所有低速接口时钟都以进入接口时钟的2分频时钟来进行发送或者采样。
这里需要的波特率是38400Hz,那么进入串口发送模块的时钟为76800Hz,板上时钟50MHz,也就是需要进行652分频,分频计数为(652/2)- 1 = 325,计数值计到324即时钟翻转。
验证实验:
利用板上的两个按键,sw1按一下,计数值加1,并通过串口调试助手显示,sw2使得计数清零。
2.3 源码公布
发送端IP:
Uart Tx顶层源码:
2.4 功能仿真
功能仿真波形如下:
2.5 上板调试结果显示
3.串口接收端设计
3.1 接收端时序
串口接收端时序图如下:
由时序图可知,收端先收数据的低位直到收到停止位,RXD线空闲电平为高,直到检测到一个低电平开始采样数据。
3.2 串口接收端设计
时钟设计:
和发送端一样,采用时钟是进入接收端模块时钟的2分频,这样能保证采样时刻在数值的中间,避免了亚稳态等问题。
设计时序:
发送模块偷了个懒没有给出设计时序图,这里给下设计之初的接收模块的时序图,如上图所示。slot是最下面的红色的那个,蓝色的那个slot画错了。
验证设计:
这里因为只有4个led,所以设计验证是通过串口助手发送数通过4个led的二进
制表现具体的发送数。
3.3 源码公布
接收端IP:
验证顶层文件代码:
3.4 功能仿真
仿真结果如下:
3.5 上板调试结果
可以看到,发送6,中间的两个灯亮了,即4’b0110。