您当前的位置:五五电子网电子知识通信技术射频技术-RFID基于MAX1487/485芯片的电子标签辅助拣货系统设计 正文
基于MAX1487/485芯片的电子标签辅助拣货系统设计

基于MAX1487/485芯片的电子标签辅助拣货系统设计

点击数:7932 次   录入时间:03-04 11:47:04   整理:http://www.55dianzi.com   射频技术-RFID

  电子标签辅助拣货系统是目前在仓储中心广泛推广应用的产品,它是一种提升传统物流作业质量和提高传统物流作业效率的有效方式。该产品用在储物货架作为检货人员的信息提示手段,有助于提高物流管理自动化和准确度。各个标签与主控制器和上位机间采用特定网络技术通信,实现无纸化办公和自动货物管理。
  
  系统实现的功能为:主控PC负责数据库管理和订单发送。当有订单需要处理时,主控PC向电子标签主控制器发送订单信息。主控制器通过RS485网络将信息发送到各个标签,各标签根据自己的ID地址进行响应。如果ID吻合,表明此次数据传送是发给本标签的,则该标签解读指令,显示货物信息。取货人员按指示数量取货后,按确认键即可。标签内设E2PROM,可保存货物信息。若货物库存不足,则操作人员按键进行缺货报告。整个过程由计算机进行实时监控,电子标签系统由主控PC、控制器和数据传输网络与电子标签几部分组成。本例只介绍工作在各个货架上的电子标签终端的实现方法。
  
  本系统控制器与标签间的通信依靠RS485网络实现。RS-485标准兼容了RS-422且技术性能更加先进。它采用平衡差分传输技术,即每路信号都使用双端以地为参考的正负信号线,即D+,D-,两线多点半双工通信。硬件设计中使用了MAX1487芯片。
  
  MAX1487是MAXIM公司推出的一款RS485驱动芯片。它采用+5V电源供电,当供电电流为500μA时,传输速率达到2.5Mbit/S。萁内部的差分系统抗干扰能力强,可检测低达200mV的信号,是一种高速、低功耗、控制方便的异步通信接口芯片。它适用于半双工通信,通信线上最多可挂128个收发器。MAX1487的管脚及内部结构框图如下图所示。

MAX1487的管脚及内部结构框图


  
  MAX1487引脚功能如下表所示。

引脚   名称 功能 1 RO 接收器输出引脚 2 RE 接收器输出使能 3 DE 驱动器输出使能 4 DI 驱动器输入引脚 5 GND 电源地 6 A 接收器同相输入端和驱动器同相输出端 7 B 接收器反相输入端和驱动器反相输出端 8 VCC 电源正

  电子标签由单片机、按键与显示、存储器和RS485通信接口几部分组成。硬件电路设计如下图所示。

电子标签原理图

  通信芯片采用MAX1487,实现RS485总线信号传输。为了保存货物数量、本机地址等数据信息,扩展了基于I2C总线的E2PROM芯片AT24C04。数码管显示采用动态扫描法,驱动器采用ULN2003,段码输送依靠串入并出的数据锁存器74HC164实现。系统由外部9V电源供电,使用LM7805稳压芯片产生+5V电源。



www.55dianzi.com

  电子标签上电后,首先执行自检程序,显示本机ID,该ID在整个系统中是惟一的。上位机发送指令信息也以此ID为目标。上位机群发命令,各标签根据ID地址,一致则响应,不同则放弃该指令。接收到指令信息后,标签根据通信协议确定要显示的信息,若为取货信息,则操作人员将显示的货物量取走,并按下确认按钮,标签报告给上位机,并停止显示。
  
  若为其他指令,如信息更新或库存查询,则电子标签对E2PROM中的信息进行读取更新等操作即可。因此系统程序分为显示程序、按键程序、通信程序、存储程序及主程序等几部分。
  
  存储程序用于操作E2PROM芯片AT24C02。AT24C02采用I2C总线,其相关函数前面章节有详细介绍,此处只列出函数原型及功能,如下表所示。

void I2C_Init() IIC总线初始化函数 void Start_I2c(); 产生IIC总线的起始条件 void Stop_I2c(); 产生IIC总线的停止条件 void WriteACK(int ack) 主机产生应答位(应答或非应答) bit WaitACK() 读取从机应答位(应答或非应答) uchar RcvByte(); 从从机读取1字节的数据 void SendByte(uchar c); 向IIC总线写1字节的数据 bit ISendStr() 主机通过IIC总线向从机发送多个字节的数据 uchar IRcvSr() 主机通过IIC总线从从机接收多个字节的数

  显示程序用于控制LED显示相关信息。LED显示采用动态显示方法,单片机通过74HC164输出段码,通过UIN2003输出位码。子程序shift164()用于向74HC164输入段码,代码如下:

  LED显示采用动态显示,子程序displed()用于刷新LED数码管显示器。程序通过调用shift164()对4位数码管逐位显示。代码如下:

  子函数led_show_num()的功能是显示本机id或显示数据。具体代码如下:

 

 

 



www.55dianzi.com

  子函数LED_show为显示处理函数。该函数周期性地被调用,用于维持LED的正常显示。
  
  该函数根据系统所处状态调用子函数led_show_num()显示不同信息,函数代码如下:

  程序设置时多处需要延时,延时函数delay_ms()根据传递进入的参数,延时相应时间。  具体代码如下:

  子函数key_operating负责处理键盘操作。根据data_p_flag标志产生处理决策。具体代码如下:

  本设计的关键在于通信程序的设计。通信程序负责接收PC机的指令,根据指令完成相应操作。子函数in_out_put()的功能是处理串口收发中断,代码如下:

  子函数rec_msg是接收数据处理函数。该函数对从串口接受的数据进行检验并处理。首先判断ID值是否与本机地址吻合,若吻合则进行后续处理,否则放弃本包数据。接收函数代码如下:

[1] [2]  下一页


本文关键字:电子  标签  射频技术-RFID通信技术 - 射频技术-RFID