完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
UART 内核模块的状态机设计 UART 内核模块的功能是控制数据接收、数据加载和数据发送的过程,这可以用状态机来实现。下面就按接收和发送的过程来介绍 UART 内核模块状态机的实现。 (1)数据接收过程 数据接收过程的流程图如图 5-6 所示,可以定义 3 个状态——空闲、接收和接收完成,其状态变换图如图 5-25 所示。 UART 内核模块在复位后进入空闲状态。如果信号监测器监测到数据传输,会给 UART 内核发送一个提示信号,UART 内核监测到此信号就会进入接收状态。在 UART 内核由空闲状态转为接收状态过程中,需要进行一系列的接收预备操作,包括将子模块复位、选择移位寄存器串行输入数据、选择移位寄存器时钟等。进入接收状态后,波特率发生器开始工作,其输出波特率时钟驱动移位寄存器同步地存储 RS-232 接收端口上的数据,并且其提示信号驱动计数器进行计数。当所有数据接收完成,计数器也达到了其计数的上阈,它会给 UART 内核发送一个信号,使得 UART 内核进入接收完成的状态。UART 内核进入接收完成状态的同时,会检查奇偶校验的结果,同时使得子模块使能信号无效以停止各个子模块。UART 内核的接收完成状态仅仅保持一个时钟周期,设置这个状态的作用是借用一个时钟周期复位信号监测器,准备接收下次数据传输。 (2)数据加载和发送过程 数据加载和发送的过程都是为了发送数据而设定的,所以将它们放在一起进行介绍。可以用 4 个状态来实现上述的过程,即空闲、加载、发送和发送完成,其中的空闲状态就是 UART内核复位后的空闲状态,和上面介绍的数据接收过程的空闲状态一致。数据加载和发送过程的状态转换图如图 5-26 所示。 数据加载过程在数据发送过程之前进行。UART 内核复位后进入空闲状态,当探测到发送控制信号有效时,便会进入加载状态开始数据加载。在进入加载状态的同时,UART 内核会将移位寄存器、计数器复位,并且通过选择信号使得移位寄存器的输入为 UART 内核产生的串行数据序列,使得移位存器和计数器的工作时钟为系统时钟。进入加载状态后,UART 内核会将完整的待发送序列加载到移位寄存器的数据输入端,发送的序列是和系统时钟同步的,移位寄存器则在系统时钟的驱动下不断读入输入端数据并且保存在内部寄存器内。在移位寄存器加载数据的同时,计数器也在时钟的驱动下进行计数,由于都是工作在系统时钟下,所以当所有数据被加载时,计数器也达到了计数的上阈(即串行数据的总量),它会产生一个提示信号使得UART 内核进入发送状态。 UART 内核进入发送状态的同时会改变几个选择信号,比如将移位寄存器时钟设为波特率时钟,将计数器时钟设为波特率的提示信号,最重要的是将输出信号送到 RS-232 的发送端口TxD 上。发送的过程和接收类似,移位寄存器在波特率时钟的驱动下内部寄存器的数据串行的发送出去,同时计数器在波特率发生器的提示信号驱动下进行计数。UART 内核在计数器到达计数上阈后便进入发送完成模式,并且输出发送完成信号。 |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
2867 浏览 3 评论
27633 浏览 2 评论
3442 浏览 2 评论
3964 浏览 4 评论
基于采用FPGA控制MV-D1024E系列相机的图像采集系统设计
2306 浏览 3 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 21:14 , Processed in 0.641041 second(s), Total 52, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号