UART接收。因为只有数据线,没有时钟,这种叫异步通信。
首先双方必须约定好通信用的时钟频率, 但是双方用的时钟必定有误差, 而且不知道每个bit 的起始时间。这两点是造成你有时候收到对的,有时候收到错的原因。所以必须要用高倍的时钟来采样,一般用8 倍、16 倍。
仅仅简单实现的话,用8 倍举例,如果另一块板子(或PC)发过来的是数据,发送一个bit 用的时钟频率是115200Hz的话,那么自己板子上要先产生一个115200x 8 = 921600Hz的内部时钟。用这个时钟对收到的串行数据进行采样,理论上讲,每个bit 可以得到7-8 个采样点。
如果FPGA晶振是50000000Hz(50MHz),则54.25 分频得到921600Hz。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !