新闻中心

EEPW首页>嵌入式系统>设计应用> 基于MCF52235 的RFID 通用开发平台设计

基于MCF52235 的RFID 通用开发平台设计

作者: 时间:2014-12-15 来源:网络 收藏

与LCD构件的通信同样采用串行方式。串行通信的一次数据分3个字节传输。第一个字节数据格式为11111AB0,表示串行控制,A是选择数据方向,1表示LCD到,0表示到LCD. B是选择数据类型,1表示数据为显示数据,0表示数据为控制命令。第二个字节格式为DDDD0000,表示8位数据的高4位。第三个字节格式为0000DDDD表示8位数据的低4位。

本文引用地址://m.amcfsurvey.com/article/266844.htm

  LCD 构件接口函数说明如下所示:

  //==================================

  void lcd_init();//初始化

  void lcd_display (const char* buf, int line);//在第line 行显示buf,line>=0 && line<= 3

  //==================================

  USB 软件构件比较简单,只需对MC9S12UF32的USB 模块进行初始化,UF32 便可以和MCF52235 进行交互了。 由于MCF52235 与UF32采用串口连接, 因此只要在串口中断程序中调用USB 构件,UF32 便可从串口接收数据, 然后通过USB 传送给上位机。 上位机通过USB 接口发送数据给UF32 也产生一个中断,在中断程序把数据缓存起来再调用USB 构件, 通过串口发送给MCF52235. USB 构件接口函数说明如下所示:

  //==================================

  void uf32_uart_init(void);//uf32 模块初始化

  void uf32_uart_send(uint8 ch[],uint32 n); //发送数据

  uint32 uf32_uart_rev (uint8 ch [],uint32 n); //接收数据

  //==================================

  语音构件相对比较简单,接口函数说明如下所示:

  //==================================

  void audio_init();//语音模块初始化

  void audio_play(int i);//语音播放

  void audio_stop();//语音停止

  //==================================

  串口构件接口函数说明如下所示:

  //==================================

  uint8 hw_uart_init(uint8 uartNo, uint32 baud);//串口初始化

  uint8 hw_uart_rev_one (uint8 uartNo, uint8 *fp); //串口接收一个字节到fp

  uint8 hw_uart_send_one(uint8 uartNo, unit8 ch);

  //串口发送一个字节

  //==================================

  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, 整个网络关系比较复杂。 因此采用将主机发送的命令、网络信息、卡信息封装在如下所示的若干个数据结构中。

  //==================================

  struct invite_info //PC 主机发送的读卡请求

  { char del_or_add; //主机离开或加入

  uint8 type; //卡的类型

  uint8 block; //要访问的数据块

  uint8 password[6]; //块的密码

  };

  struct ip_arrays_B //读Type B 卡信息

  { ip_addr ipaddress; //IP 地址

  int port; //UDP 端口号

  };

  struct send_data_type //发送到主机的数据

  { uint8 sn[4]; //序列号

  uint8 block; //块号

  uint8 data[16]; //16 个字节块数据

  uint8 ret; //返回值

  };

  struct IC_ope //用于消费用途的应用

  {

  uint8 block; //总的金额数

  float fsub; //每次刷卡扣除的金额数量

  uint8 *pass;

  };

  struct record_info //记录卡信息

  { //此块引用计数,0 表示没有请求读这块数据

  uint8 ref; //引用计数

  uint8 block; //块号

  uint8 password[6]; //块的访问密码

  };

  struct ip_arrays_A //读Type A 卡信息

  { ip_addr ipaddress; //IP 地址

  int port; // UDP 端口号

  uint8 block [num_of_rf_structs]; //这个UDP连接要读取的所有块

  };

  struct net_cmd //发送到板子的命令

  { uint8 lenth; //请求数据长度

  uint8 cmdope; //操作码

  uint8 data[1]; //数据

  };//=================================

  3通用开发平台应用

  基于此平台文中开发了学生机房上机刷卡系统。 在每个机房安装一台读卡器,PC 主机的数据库中存储了每个机房的课表、任课教师和学生的信息。 学生持卡到各个机房的读卡器上刷卡,读卡器将读到的信息通过网络传输到PC 主机上,统计学生人数和上、下课时间等情况, 相关信息显示在LCD 上并进行语音提示。 PC 端软件实现了网络通信功能和学生机房上机刷卡管理系统。 网络通信通过CManagerDlg:: m_skInfo 和CManagerDlg::

  m_skCmd 这2 个sokcet 接口完成。 学生机房上机刷卡管理系统开发软件采用VC++2012 和SQLServer 2012 关系型数据库管理系统。 学生机房上机刷卡管理系统界面如图6 所示。

  4 结语

  现有系统开发基本是根据具体应用需求进行单独设计的。 而这些不同的应用系统在软、硬件部分具有很大的重复性,为提高软、硬件的可重用性,文中通过分析RFID 射频识别系统一般模型,提出了一种基于MCF52235 的RFID 通用开发平台软、硬件构件化设计方案,设计了集成多种接口的具备通用功能的RFID 开发平台,并将该平台应用于学生机房上机管理系统中。 实践证明它为RFID 系统开发提供了一个快速、通用的软、硬件模型。

pa相关文章:pa是什么


上拉电阻相关文章:上拉电阻原理
锁相环相关文章:锁相环原理

上一页 1 2 3 下一页

关键词:RFIDMCF52235CAN

评论


相关推荐

技术专区

关闭