基于MCF52235 的RFID 通用开发平台设计
//==================================
SPI 构件接口函数说明如下所示:
//==================================
uint8 hw_spi_init (uint8 spiNo,uint8 master);//SPI 初始化
uint8 hw_spi_send (uint8 spiNo,uint8 data [],uint8 len);//SPI 发送数据
uint8 hw_spi_re(uint8 spiNo,uint8 data[]); //SPI接收数据
uint8 hw_spi_enable_re_int (uint8 spiNo); //开SPI 接收中断
uint8 hw_spi_disable_re_int (uint8 spiNo); //关SPI 接收中断
//==================================
GPIO 构件接口函数说明如下所示:
//==================================
uint8 hw_gpio_init (uint8 port,uint8 pin,uint8dir,uint8 state);//初始化端口为GPIO 引脚
uint8 hw_gpio_set (uint8 port,uint8 pin, uint8state); //设置指定引脚状态
uint8 hw_gpio_get(uint8 port,uint8 pin);//获取指定引脚状态
uint8 hw_gpio_reverse(uint8 port,uint8 pin);//反转指定引脚状态
//==================================
高层构件包括三个部分:FreeRTOS 操作系统在MCF52235 上的移植[13-14],Shell 的实现,网络命令和信息的封装。 将FreeRTOS 移植到MCF52235主要是实现3 个底层汇编级的支持函数,tk_frame(task *tk, int (*entry)(), int arg)函数为tk 进程创建堆栈帧保存进程的各种状态;tk_switch (task *tk)函数用于把当前进程切换到tk 进程;tk_getsp()函数返回当前堆栈指针。 另外,在FreeRTOS 中运行一个Shell 进程,进程函数为int keyboard (int param),可调试或查看系统状态信息,比如各个进程的运行状态、ARP 表、IP 地址、MAC 地址、连接状态等。
Shell 实现的效果如图5 所示。
在实际应用中,通常一台PC 主机管理若干读卡器, 一个读卡器可以为若干PC 主机服务。 每个PC 主机和读卡器都具有不同的IP 地址, 一台PC主机可以控制读写器1 读写每个Type A 卡的某个块数据, 还可以同时控制读写器2 读写每个TypeA 卡的另一个块数据, 或者请求读取Type B 卡的UID, 整个网络关系比较复杂。 因此采用将主机发送的命令、网络信息、卡信息封装在如下所示的若干个数据结构中。

评论