求助!串行数据中前导和地址判别问题
时间:10-02
整理:3721RD
点击:
小弟要用FPGA做一个模块, 大体功能: 在单片机与射频芯片之间要加一块FPGA, 要实现把射频芯片收到的数据包做处理, 数据包里面的格式为:同步码(16进制的数AAAAAA,一共6个A)+前导(D391)+目的地址(1个字节)+DATA(10个字节), 数据是按位传输的,2400BIT/S, 要先实现同步,再判断前导第一个字节,正确的话判断前导第二个字节,正确的话再判断目的地址,正确的话把剩下的全部数据接收, 然后再按位传给单片机. 怎么做?希望哪位大哥能指点一二,QQ:25493213
ps:单片机与射频芯片是以SPI模式传递数据。除了数据传输线外,还有个数据随路时钟。现在单片机按这个时钟信号来中断处理数据。
ps:单片机与射频芯片是以SPI模式传递数据。除了数据传输线外,还有个数据随路时钟。现在单片机按这个时钟信号来中断处理数据。
使用状态机很容易实现
不知道FPGA到底和你的系统怎么接,是处于射频芯片和单片机之间吗?如果是的话,那么就应该是射频芯片传递数据给FPGA,FPGA又和单片机交互,为什么又说“单片机与射频芯片是以SPI模式传递数据。除了数据传输线外,还有个数据随路时钟。现在单片机按这个时钟信号来中断处理数据”呢(这样我以为就是射频芯片直接与单片机相连)?如果仅仅是FPGA做包处理的话,按你的描述,只要使用状态机加计数器就可以描述,可以分为:空闲状态、检测同步码状态、检查前导码状态、检测地址码状态以及接收数据状态,由于是串行接收数据,因此在每个状态中都必须有计数器计数接收的bit,这样单接收的bit数等于该状态对应的bit数目时就判断接收数据是否正确并进行相应处理,时钟可使用射频芯片提供的随路时钟。
高人大哥,先谢谢了,
你说的对啊,就是这么个意思,现在是单片机直接以SPI模式与射频芯片连接处理数据包,但单片机需要不停的中断来处理,工作负荷很大,所以要把中断处理数据包的工作用一块FPGA来做,你能加我QQ吗?谢谢啦,刚开始做,动不了手啊.我QQ:25493213,不用验证.