Embedded 用C语言处理RFID时间响应函数

Embedded 用C语言处理RFID时间响应函数,embedded,task,microcontroller,rfid,rtos,Embedded,Task,Microcontroller,Rfid,Rtos,我正在开发一个嵌入式应用程序,用C语言编写,使用来自Renesas的M16C/28 uC 该应用程序管理两个简单的任务: 用于检测和读取MIFARE标签的RFID。(使用NXP的HW:Mf500)。uC处理整个FW实现 以RS485帧协议作为从机进行处理。(此应用程序必须能够每10毫秒处理一次RS485帧) RFID实现包含阻塞码,检测RFID标签的时间响应约为15毫秒。这会导致RS485处理上的RX接收缓冲区溢出 我的问题如下: 在RFID世界中处理这样的时间响应是否正常 我是否应该使用RT

我正在开发一个嵌入式应用程序,用C语言编写,使用来自Renesas的M16C/28 uC

该应用程序管理两个简单的任务:

  • 用于检测和读取MIFARE标签的RFID。(使用NXP的HW:Mf500)。uC处理整个FW实现
  • 以RS485帧协议作为从机进行处理。(此应用程序必须能够每10毫秒处理一次RS485帧)
  • RFID实现包含阻塞码,检测RFID标签的时间响应约为15毫秒。这会导致RS485处理上的RX接收缓冲区溢出

    我的问题如下:

    • 在RFID世界中处理这样的时间响应是否正常
    • 我是否应该使用RTOS抢占RFID任务以满足RS485帧要求
    • 我是否应该使用外部uC作为主机控制器来释放RFID manager uC的负载

    提前感谢您回答您的问题:

  • 取决于
  • 您可以使用RTOS
  • 您可以使用额外的uC
  • 更好的选择是:

  • 在串行通信中使用DMA
  • 使RFID代码无阻塞
  • 在串行中断中执行更多操作

  • 响应时间因您与之通信的卡/rfid类型而异。我不知道Mifare RFID的时间,但15毫秒似乎并不坏

    在您的情况下,来自RS485的请求可能比RFID部分处理的请求更多。您可以使用队列或FIFO来存储输入请求,以便以后可以根据系统的物理限制来处理它们

    使用RTOS会有所帮助,但通常情况下,它们不是免费的。此外,如果尚未支持,您可能必须将其移植到您的平台。如果您的固件所做的只是处理RS485请求并与RFID通信,那么您应该通过中断来存储传入命令,并通过循环来分别处理它们

    对于第二个uC,它就像RTO。在这种情况下,它可能会有所帮助,但可能不是正确的解决方案(您必须管理2个固件、一个通信协议或uCs之间的FIFO,这将花费两倍的价格,…)