首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于CPLD的电子存包系统的设计与实现

基于CPLD的电子存包系统的设计与实现

 近年来,随着信息科技的发展,电子存包系统由于其安全性高、可靠性高、方便快捷等特点,在车站码头、超市、图书馆、宾馆、游泳馆、俱乐部等公共场所及机关、企事业单位文件档案管理等部门得到了广泛的应用,有着广阔的市场前景。  1 系统组成
  本文所介绍的电子存包系统是一种电脑联网集中控制的磁卡式自动存包系统。如图1所示,系统由集控计算机和分机两级监控系统对存包柜进行监视与控制。
[img][/img]
  集控计算机(简称主机)为用户分配箱位和密码,通过与其连接的磁卡读写器将密码写入磁卡中交给用户。主机使用特定的通信协议查询和控制各个分机,然后由分机对其下属箱位进行控制。主机与分机之间采用RS-485接口连接。RS-485在传输距离为1200米时速度可达100kbps、传输距离远、可靠性很高,而且用于多点互连时很方便,可以省掉很多信号线,非常适合用于分布式系统中。
  分机具有接收并缓存读卡器数据、与主机通信、控制存包柜动作等功能,主要由CPLD芯片、光耦合模块、该磁卡模块、红外探测模块、电磁锁驱动模块等外围电路组成。CPLD芯片选用Altera公司的EPM3256A TC144-10,其技术参数如表1所示。
表1 EPM3256ATC144-10技术参数
[img][/img]
  在本设计中,所有的控制与通信功能全部集成到CPLD内部,充分发挥了CPLD使用灵活、测试方便、可靠性好等优点。
  2.1 基本硬件组成
  电子存包系统的基本硬件结构,即分机的硬件组成如图2所示。
[img][/img]
  电源模块使用变压器将220V交流电变为9V交流电,然后经过整流、稳压输出3.3V、5V、12V三路直流电对分机系统供电。其中,3.3V直流是怪CPLD供电,5V直流电对外围电路供电,12V直流电用来驱动电磁锁。
  磁卡数据接收模块主要由一片MAX202和一个9帧D型接口以及五个0.1/μF电容组成,当用户刷卡动作完成时,磁卡中密码数据立即被传送至CPLD中暂存。当主机轮循至该分机时,分机将密码发送给主机。
  晶振模块利用4060分频器和4020分频器对2.4576MHz晶振频率进行分频,分别得到9600Hz、153600(9600×16)Hz、2.35Hz的频率信号作为CPLD的输入时钟信号。
  红外线发射与接收模块的作用是利用红外线检测各个存包柜内是否有物品,通过红外接收模块将检测结果反馈到CPLD,然后由CPLD发送给主机。
  RS-485通信模块中使用了光耦器件4N25进行光电隔离以抑制噪声对通信线路的干扰,并由一片RS-485收发器芯片SN75LBC184实现TTL电平与RS-485电平之间的转换。 电磁锁驱动模块负责对CPLD输出的3.3V开门信号进行放大,以驱动电磁锁进行开关动作。为保证输出功率,采用了二极计流放大,电磁锁由末级功放管BD241驱动。每个分机控制八个箱位,因此如图3所示的驱动电路共有八路。
[img][/img]
  另外,本系统还选用了三晶公司生产的SJE-102磁卡读写器和SJE-451读卡器作为磁卡读写设备,分别与主机、分机相连接。
  2.2 CPLD内部逻辑设计
  CPLD内部逻辑的顶层原理图如图4所示。由图可见,CPLD内部逻辑电路由主控模块(main)、串行数据收发模块(s8)、磁卡数据接收模块(mag_s8)、磁卡数据缓冲模块(mag)以及开门信号延时模块(door)和报警模块(beep)几部分组成。
[img][/img]
点击看原图
  2.2.1 主控部分的设计
  主控模块主要由一个状态机实现,采用VHDL语言描述。该状态机共有四个状态,分别是等待侦听状态、等待寻址帧状态、发送密码及箱位号码并接收主机开箱信号状态和接收主机强制开箱信号状态。
  在这里采用全0帧“00000000”作为复位帧,当接收到复位帧时,系统立即返回等待侦听状态;采用全1帧“11111111”作为起始标识帧,在等待侦听状态下接收到全1帧时则转入等待寻址帧状态。寻址帧分为一般寻址帧和强制开箱寻址帧两种。一般寻址帧由四位分机编号+“1000”组成,而强制开箱寻址帧由四位分机编号+“0001”组成。当分机在等待寻址帧状态下收到这两种寻址帧时便分别转入发送密码及箱位号码状态和接收主机强制开箱信号状态。
  2.2.2 串行数据收发部分的设计
  本设计有两个串行数据发送与接收模块,分别用于与主机通信和接收磁卡数据,采用的通信速度都是9600bps。这两部分的设计思想是统一的,其中磁卡数据接收模块只用到串行数据的接收技术。
返回列表