1、I超市储物柜系统驱动板设计摘 要在空间狭小、物品繁多的室内场合,传统的储物柜和物品管理方式显得捉襟见肘。在通过利用室内高处空间、提高物品摆放密度等方法,提高物品的利用率。同时也会对整套储物系统的易用性、自动化程度提出更高的要求。然而超市里的储物柜(存包柜)给予了我们极大的方便。因此为满足人们的日常需求,基于实际应用设计一种超市储物柜系统。此系统也广泛应用于图书馆、游泳馆、车站、码头等,为广大顾客提供短期寄存保管服务。本课题设计一种基于红外条形码识别技术的超市储物柜系统的驱动板,用来驱动储物柜单元的电磁锁、红外传感器等。采用 STC89C52-LQFP 工业级芯片作为控制核心,保证了系统的稳定性
2、。并且具有较多的 I/O 口资源,实现一块驱动板能够同时检测 8 个储物柜单元的当前储物状态(柜内是否有物品、柜门电磁锁状态、柜门是否锁上) 。驱动板能够通过 485 总线与系统主控板进行通信,将储物柜单元的状态及时准确地反馈给主控板,以便判断可用柜子的号码及个数。检测部分采用漫反射红外传感器检测柜子的储物状态,用限位开关检测柜门是否锁上。进而完成整个驱动板的设计,与主控板协同完成存取物品的整个过程。关键词:储物柜,STC89C52-LQFP ,485 总线,驱动板IIThe Design of Supermarket Locker System Driver Board ABSTRACTIn
3、 the narrow space, many items of indoor occasions, traditional lockers and goods management is difficult. By increasing the density of the display of goods and using the indoor high space, we improve high utilization rate of the goods, also on the set of storage system easy to use,automation demands
4、. However, the supermarket locker(storage) gives us great convenience. In order to meet the daily needs of people, we design a supermarket locker system based on actual application. This system is also widely used in the library, swimming pool, station, wharf,provide short-term safe custody service
5、for our customers.This project is to design a driving plate supermarket locker system infrared bar code recognition technology based on electromagnetic drive unit, used for cabinet lock, infrared sensor. Using industrial grade STC89C52-LQFP chip as the control core, ensure the stability of the syste
6、m. And have more I/O resources, a driver can detect the current storage status 8 lockers unit (if there is any,cabinet doors, door electromagnetic lock state is locked).Drive plate to communicate via the 485 bus with the system main control board, the cabinet unit state timely and accurate feedback
7、to the main control board, in order to determine the number and the number of available.The detection part of the diffuse reflectance infrared sensors to detect the cabinet storage state, with a limit switch detection door is locked. Then complete the drive plate design, the whole process collaborat
8、ion and the main control board access items completed.KEY WORDS: Lockers, STC89C52-LQFP, 485bus, The driver boardIII目 录前 言 .1第 1 章 系统设计要求与设计方案 .31.1 设计要求 .31.2 设计方案比较与论证 .3第 2 章 硬件电路设计 .72.1 STC89C52RC-LQFP 单片机介绍 .72.2 驱动板系统各部分电路原理图 .102.2.1 单片机最小系统 .102.2.2 拨码开关电路 .112.2.3 电磁锁驱动电路 .112.2.4 SP485 与单
9、片机的连接 .122.3 PCB 电路板的制作 122.4 门控电磁锁原理及选型 .15第 3 章 SP485 原理与多机通信 183.1 SP485 介绍 .183.2 数据通信基础 .193.2.1 数据通信的概念 .193.2.2 串行通信的传送方式 .203.3 SP485 多机通信 .21第 4 章 软件设计 .234.1 系统软件设计 .234.1.1 通信协议设计 .234.1.2 多机通信时的分时说、听 .234.2 主程序流程图 .244.2.1 串口中断子程序 .264.2.2 解码子程序 .284.3 Modbus 协议简介 30第 5 章 系统调试 .33IV5.1 硬
10、件调试 .335.2 软件调试 .335.3 总体调试 .34结 论 .36谢 辞 .37参考文献 .38附 录 .40外文资料翻译 .411前 言近来国外超市试行“快递储物柜” ,将储物柜与快递相结合,顾客可以在网上购物然后到超市储物柜取自己的商品,不仅为超市提高了效益,也为顾客提供了方便,国内也将试行这一新方法,将储物柜与网络相连接实现远程控制为顾客提供服务,通过短信密码打开自己的储物柜取出商品。对电商和快递来说无疑降低了运送成本,对于消费者来说避免了在家坐等送货上门的不变,大大缩短了交易时间。在超市、商场、图书馆、车站等物品繁多的室内场合,人流量相对较大,为了给顾客带来便利储物柜便应运而
11、生。超市里的储物柜(存包柜)给予了我们极大的方便,可是在享受这种方便的同时,总是出现各种各样的小问题。也许你和我都碰到过这样的状况:扫描条码的存包柜在按下存包键后没有反应、取包时扫描器却无法读取条码、这么多的柜子却永远满箱同时,大多是因为超市顾客遗失纸质条码,带来了各种麻烦以及损失、无意或恶意占空箱导致其他人无法使用储物柜,储物柜得不到合理有效的利用,不能满足寄物需求,顾客抱怨颇多,对超市的形象非常不利。针对这些问题我们对储物柜的控制方案以及突发事件进行评估并作出拟解决方案,优化软硬件避免非人为因素对顾客造成的损失。主要设计一种基于红外条形码识别技术的超市储物柜系统的驱动板,要求一块驱动板能够
12、同时检测 8 个储物柜单元的当前储物状态、柜门电磁锁状态,保证储物柜能准确无误的实现存储,充分利用储物柜的价值。使驱动板够通过 485 总线与系统主控板进行通信,将检测到的状态信息告知主控板,并能够根据主控板发送的指令,送出驱动信号打开相应电磁锁。选择合适的红外传感器,能够通过红外检测技术判断储物柜的当前储物状态,传感器的安装位置及其检测的准确度,是否受其他外界条件的影响而误测等;选择合适的电磁锁,驱动板能够检测电磁锁的状态,能准确判断储物柜是否锁好以及是否正常打开,能够准确执行主控板发来的命令;能够与主控板通过 485 总线准确通讯,并反馈储物柜的状态和电磁阀状态的信息,保证顾客存取物品的快
13、捷、方便和安全;合理设计红外传感器和电磁锁的驱动电路;绘制原理图和 PCB 图并制出驱动板实物;设计驱动软件程序能与主控板协同2工作。本设计是基于这些问题的存在进一步提出解决超市存储问题,使顾客存储物品变得更方便、快捷,顾客容易操作并具有更高的可靠性、安全性等,可以有效防止顺手牵羊,避免物品丢失,减少偷盗行为的发生。从而使超市更高效的为顾客提供优质的服务,大大提高了超市工作人员的工作效率。3第 1 章 系统设计要求与设计方案1.1 设计要求本课题设计一种基于红外条形码识别技术的超市储物柜系统的驱动板,要求一块驱动板能够同时检测 8 个储物柜单元的当前储物状态、柜门电磁锁状态、并能够通过 485
14、 总线与系统主控板进行通信,将检测到的状态信息告知主控板,并能够根据主控板发送的指令,送出驱动信号打开相应电磁锁。选择合理可行的系统硬件设计方案、规划各功能模块的实现方法,绘制原理图和 PCB 版图,制作出驱动板实物;设计驱动板软件程序,能够和主控板协同工作。1.2 设计方案比较与论证STC89C52RC 是美国 ATMEL 公司生产的低功耗,高性能 CMOS 8 位单片机,片内含 8KB 的可系统编程的 Flash 只读程序存储器,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 8051 指令系统及引脚 1。它集 Flash 程序存储器既可在线编程(ISP )也可用传统方
15、法进行编程及通用 8 位微处理器于单片芯片中,具有高性价比。且价格便宜,采用 LQFP 封装使得芯片的稳定性更高,本设计采用 STC89C52RC-LQFP 作为控制板核心芯片,其 I/O 口已满足设计功能的需要。(1) 电磁锁。首先在选择合适的电磁锁,本系统选择了该类电磁锁:电磁铁通电,磁铁吸和,柜门打开;不通电,则在弹簧作用力下,柜门关闭。(2) 红外接近开关。采用市场上常用的 E18-D50NK 漫反射式红外光电开关,其检测距离可调,当有物体挡到前面时,该红外光电开关会输出一个低电平信号,有此判断柜内是否有物。(3) 限位开关。限位开关选择与家用冰箱内的门限开关开关类似,安装在门上合适的
16、位置用4来检测柜门是否关上。方案一:指纹密码控制各种箱柜1. 操作简单,管理方便,无需携带任何凭证;存物:按“存”键-指纹录入区内按压指纹- 自动开门- 存入物品-关箱门取物:指纹录入区内按压指纹-自动开门- 取出物品- 关箱门2. 存取快捷,提高客流量和设备使用效率;3. 管理系统可开箱检查,设置时间;4. 自动开门,机械强开门,自动安排空箱,有自动探测系统,避免无存现象;5. 记录查询功能:可为管理员提供界面查询顾客存取记录;6. 中央控制与箱锁控制部分分离,采用总线方式扩展,扩展方式灵活;7. 安全性能高,活体指纹,难以复制;8. 无需消耗各类耗材,节省的同时更环保;9. 停电的情况可紧
17、急开启所有柜门,也可连接备用电源,备用电源正常部不少于 6 小时。方案二:手机短信控制各种箱柜一种基于 GSM 网络的新型存包柜,采用短信收发等方式来存取物品,克服了已有存包柜的成本高、不够低碳环保、密码纸条容易丢失等缺点,使存包柜的使用变得更为方便和人性化。此外,柜子中还装有红外感应系统,可随时监测柜中是否有物品。而柜子外侧的 LED 灯显示柜中是否存有物品,在很大程度上能够帮助存物人避免遗漏物品。该功能主要是通过 GSM 拈来实现。当存包人输入自己的手机号并确认后,会生成一个随机密码发送到用户指定的手机上;如果用户想开箱,可以回复刚刚收到的密码短信,GSM 拈收到短信以后先判断号码是否来自
18、存包的用户之一,如果是,则打开相应的柜子,如果不是,则不作任何响应。针对没有带手机或手机一同被存在存包柜的情况,我们设立了一种特殊的开箱方式:只要再次输入一次手机号码即可。如果输入的手机号和某个存包柜记录的电话号码一致,则打开响应的柜子。方案三:射频卡控制各种箱柜RF 卡(射频卡 )储物柜系统利用目前技术最先进的射频卡,操作简单方便,应5用广,加密性能好,抗干扰能力强,将射频识别技术与 IC 卡技术相结合,它不仅为用户带来了方便,也使企业的管理更加规范、有效,尤其是“一卡通用”更是使企业管理再上新台阶,为企业产生了一定的经济效益和社会效益,以用于工厂、医.院、校园、智能大厦、小区等、还可以应用
19、于娱乐场所、机场等客流量较大、流动性大的场所该产品极大地提高了财物保管、使用的安全性和方便性。1. 支持使用二代身份证或校园卡等射频卡进行存、取包相应操作,缩短顾客存取物的使用时间;2. 系统人机界面简洁、友好大方;支持语音提示操作;采用触摸式按键使系统更加经久耐用,外形更加美观;3. 系统可实时显示柜门使用状况:包括柜子是否占满,用户存取物品操作的柜子及时间;通过点击软件上的柜体,便可轻松查询某柜子最近一次存物记录;4. 日志功能,能保存各种操作记录;5. 可设置使用用户的超时时间、自动清柜时间;6. 使用方法。(1) 存物:按“存”键,把身份证放在感应区停留 1 秒钟,柜门自动打开。(2)
20、 取物:按“取”键,把身份证放在感应区停留 1 秒钟,柜门自动打开。方案四:条码扫描控制各种箱柜又称机设条码自助寄存柜,是在密码型的基础上开发的换代产品。由图形代替数字,从扫描器读入代替键盘输入,利用随机产生条码打印在条码纸上,安全可靠。内部微型计算机控制箱柜存取操作,液晶显示屏显示存物箱号、操作步骤提示、各箱内状态、通讯状态、日期及时间等信息,人机交互性强,操作界面友好。1. 操作简单存物:按“存”键-取条码- 自动开门-存入物品-关箱门取物:条码靠向读码口扫描-打开箱门- 取出物品- 关箱门2. 全套密码管理系统:管理人员只需通过管理密码即可轻松进行管理;3. 采用优质冷轧钢板,外表静电粉
21、沫喷塑,柜体结构紧固牢靠,表面无可拆卸螺钉,安全便利。根据各方面考虑,选择用方案四,不仅价格上较便宜,而且使用方便,相对6比较安全。主机 M C U主机 M C U串口 4 8 5串口 4 8 5从机 1从机 1从机 2从机 2从机 3图 1-1 总体方案框图7第 2 章 硬件电路设计2.1 STC89C52RC-LQFP 单片机介绍STC89C52RC-LQFP 单片机及其引脚说明。图 2-1 单片机引脚图VCC 电源电压。GND 接地。SPT 复位输入。当 SPT 变为高电平并保持 2 个机器周期时,将使单片机复位。WDT 溢出将使该引脚输出高电平,设置 SFR AUXR 的 DISRTO
22、 位(地址8EH)可打开或关闭该功能。DISKRTO 位缺省为 RESET 输出高电平打开状态 2。XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2 来自反向振荡放大器的输出。P0 口 一组 8 位漏极开路型双向 I/O 口。也即地址/ 数据总线复用口。作为输8出口用时,每位能驱动 8 个 TTL 逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位)和数据总线复用,在访问期间激活内部上拉电阻。在 Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻,P0 口作为 8
23、 个红外接近开关的输入 3。P1 口 一个带内部上拉电阻的 8 位双向 I/O 口,P1 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写 “1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL) 4。Flash 编程和程序校验期间,P1 接收低 8 位地址。 P1 口部分端口引脚及功能如表 2-1 所示,P1 口接电磁锁。表 2-1 P1 口特殊功能P1 口引脚 特殊功能P1.5 MOSI(用于 ISP 编程)P1.6 MOSI(用于 ISP 编程)P1.7 SCK(用于 ISP
24、 编程)P2 口 一个带内部上拉电阻的 8 位双向 I/O 口。P1 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写 “1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL) 。在访问外部程序存储器或 16位地址的外部数据存储器时,P2 口送出高 8 位地址数据。在访问 8 位地址的外部数据存储器时,P2 口线上的内容在整个访问期间不改变。Flash 编程和程序校验期间,P2 亦接收低 8 位地址。本设计中将 P2 口接上拉电阻,与限位开关相连接。P3 口 一个带内部上拉电阻的
25、8 位双向 I/O 口。P3 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对 P3 口写“1”时,它们被内部的上拉电阻把拉到高电并可作输入端口。作输入端口使用时,被外部拉低的 P3 口将用上拉电阻输出电流(IIL ) 。P3 口除了作为一般的 I/O 口线外,更重要的用途是9它的第二功能,如表 2-2 所示。P3 口还接收一些用于 Flash 闪速存储器编程和程序校验期间的控制信号。表 2-2 P3 口特殊功能P3 口引脚 特殊功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INT0(外部中断 0)P3.3 INT1(外部中断 1)P3.4 T0(
26、定时器 0 外部输入)P3.5 T1(定时器 1 外部输入)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)PSEN/ 程序储存允许输出是外部程序存储器的读先通信号,当 AT89S51 由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN/有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的 PSEN/信号 5。EA/VPP 外部访问允许。欲使 CPU 仅访问外部程序存储器, EA 端必须保持低电平,需注意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA 端状态。Flash 存储器编程时,该引脚加上+12V 的编程电压 VPP。表 2-3 P
27、4 口特殊功能P4 口引脚 特殊功能P4.0 标准 I/O 口P4.1 标准 I/O 口P4.2 INT3(外部中断 3)P4.3 INT2(外部中断 2)P4 口 STC89C52RC-LQFP 增加有 P4 口,P4 口接拨码开关用来设置硬件地址。102.2 驱动板系统各部分电路原理图2.2.1 单片机最小系统图 2-2 最小系统原理图单片机最小系统包括复位电路、晶振电路,是保障单片机正常运行的关键,其中晶振选用 11.0592MHz,就构成单片机的最小系统。单片机最小系统电路组成是每一部分必不可少的,即没有电源、复位电路和时钟电路单片机就无法工作。在单片机的最小系统基础上,在加上用户需它
28、完成一定工作的电路,单片机控制电路就形成了。112.2.2 拨码开关电路图 2-3 拨码开关与单片机连接电路图拨码开关与单片机的 P4 口相连,通过设置 P4 口的值设置相应的从机硬件地址,当 P4 口拨到 on 位置时 P4 口全为高电平,反之全为低电平,从而通过检测P4 口的值来确定本机地址。2.2.3 电磁锁驱动电路图 2-4 电磁锁驱动电路12电磁锁驱动采用普通的三极管放大电路,5V 电源供电,电磁锁上并联有二极管用来防止逆电流和吸收自感应电流 6,从而保证电磁锁正常工作。2.2.4 SP485 与单片机的连接图 2-5 SP485 与单片机连接电路图485 与单片机连接时,RO、DI
29、 只需分别与单片机的 RXD 和 TXD 相连即可;/RE 和 DE 端分别为接收和发送的使能端,当/RE 为逻辑 0 时,器件处于接收状态;当 DE 为逻辑 1 时,器件处于发送状态,将二者与单片机的 P3.6 相连作为485 的收发使能端。2.3 PCB 电路板的制作PCB 设计的基本原则 :印制电路板设计首先需要完全了解所选用元件及各种插座的规格、尺寸、面积等。当合理地、仔细地考虑各部件的位置安排时,主要是从电磁兼容性、抗干扰性的角度,以及走线要短、交叉要少、电源和地线的路径及去耦等方面考虑 7。13首先是电路板的制作,采用 Protel DXP 2004 绘制电路原理图及 PCB 板,
30、原理图设计流程:新建工程项目新建工程项目新建原理图文件设置工作环境放置元器件原理图布线原理图的电器检查是否合格生成网表及文档编译和修改YN图 2-6 PCB 电路板设计流程图印制电路板上各元件之间的布线应遵循以下基本原则 8:(1) 印制电路中不允许有交叉电路,对于可能交叉的线条,可以用“钻” 、“绕”两种办法解决。 (2) 电阻、二极管、管状电容器等元件有“立式”和“卧式”两种安装方14式。 (3) 同一级电路的接地点应尽量靠近,并且本级电路的电源滤波电容也应接在该级接地点上。 (4) 总地线必须严格按高频、中频、低频一级级地按弱电到强电的顺序排列,切不可随便乱接。 (5) 强电流引线(公共
31、地线、功放电源引线等)应尽可能宽些,以降低布线电阻及其电压降,减小寄生耦合而产生的自激。 (6) 阻抗高的走线尽量短,阻抗低的走线可长一些,因为阻抗高的走线容易发射和吸收信号,引起电路不稳定。 (7) 各元件排列、分布要合理和均匀,力求整齐、美观、结构严谨。电阻、二极管的放置方式分为平放和竖放两种,在电路中元件数量不多,而且电路板尺寸较大的情况下,一般采用平放较好。 (8) 电位器。电位器的安放位置应当满足整机结构安装及面板布局的要求,因此应尽可能放在板的边缘,旋转柄朝外。 (9) IC 座。设计印制板图时,在使用 IC 座的场合下,一定要特别注意 IC座上定位槽放置的方位是否正确,并注意各个
32、 IC 脚位是否正确。 (10) 进出接线端布置。相关联的两个引线端不要距离太大,一般为2/103/10 inch 左右较合适。进出线端尽可能集中在 12 个侧面,不要太过离散。(11) 要注意管脚排列顺序,元件引脚间距要合理。如电容两焊盘间距应尽可能与引脚的间距相符。 (12) 在保证电路性能要求的前提下,设计时尽量走线合理,少用外接跨线,并按一定顺序要求走线。走线尽量少拐弯,力求线条简单明了 9。 (13) 设计应按一定顺序方向进行,例如:可以按从左往右和由上而下的顺序进行。 (14) 线宽的要求。导线的宽度决定了导线的电阻值,而在同样大的电流下,导线的电阻值又决定了导线两端的电压降。最终
33、绘制的 PCB 电路图如图 2-7 所示。15图 2-7 绘制成的 PCB 电路图2.4 门控电磁锁原理及选型图 2-8 门控电磁锁原理16利用简单的三极管放大作为电磁锁的驱动电路,采用 5V 供电 2A 的适配器供电;当单片机的 P 口输出低电平时 L1 处是高电平,此时电磁锁带电吸合,电磁锁常态是放开状态,只有带电时才吸合。电磁铁通电,磁铁吸和,柜门关闭;不通电,则在弹簧作用力下,柜门打开10。电磁锁及其他配件推荐配置:图 2-9 门控机械装置柜门锁柜门锁(备选)17柜门锁(备选)图 2-10 组合柜门示意图18第 3 章 SP485 原理与多机通信3.1 SP485 介绍图 3-1 SP
34、485 引脚图图中显示的是 SP485 引脚图, SP485 采用差分信号负逻辑, +2V+6V 表示“0”,-6V-2V 表示“1” ,SP-485 有两线制和四线制两种接线四线制只能实现点对点的通信方式,线很少采用,现在多采用的是两线制接线方式这种接线方式为总线式拓扑结构,在同一总线上最多可以挂接 32 个结点。在 485 通信网络中一般采用的是主从式通信方式,即一个主机带多个从机。很多情况下,连接 SP485通信电路只是简单地用一对双绞线将各个接口的“A ”、 “B”端起来了 11。采用单一电源+5 V 工作,额定电流为 300 A,采用半双工通讯方式。它完成将 TTL 电平转换为 SP
35、485 电平的功能。从图中可以看出,485 芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。RO 和 DI 端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的 RXD 和 TXD 相连即可;/RE 和 DE 端分别为接收和发送的使能端,当/RE 为逻辑 0 时,器件处于接收状态;当 DE 为逻辑 1 时,器件处于发送状态,因为 SP485 工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A 端和 B 端分别为接收和发送的差分信号端,当 A 引脚的电平高于 B 时,代表发送的数据为 1;当 A 的电平低于 B 端时,代表发送的数据为 0。在与单片机连接
36、时接线非常简单。只需要一个19信号控制 SP485 的接收和发送即可。同时将 A 和 B 端之间加匹配电阻,一般可选 120 的电阻 12。由于 MAX232 的种种缺点,新的串行通讯接口标准 RS449 被制定出来,与之相对应的是 SP485 的电气标准。 SP485 是美国电气工业联合会 (EIA)制定的利用平衡双绞线作传输线的多点通讯标准。它采用差分信号进行传输;最大传输距离可以达到 1.2 km;最大可连接 32 个驱动器和收发器;接收器最小灵敏度可达200 mV;最大传输速率可达 2.5 Mb/s。由此可见,SP485 协议正是针对远距离、高灵敏度、多点通讯制定的标准 13。主单片机
37、S P 4 8 5从单片机1S P 4 8 5从单片机2S P 4 8 5从单片机3 2图 3-2 485 多机通信示意图3.2 数据通信基础3.2.1 数据通信的概念随着多微机系统的应用和微机网络的发展,通信功能越来越显得重要。通信是指计算机与外界的信息交换,它既包括计算机与外部设备之间,也包括计算机之间的信息交换,所有这些信息交换都可称之为数据通信。数据通信的方式有两种,即并行数据通信和串行数据通信。通常根据信息传送的距离决定采用哪种通信方式 14。3.2.2 串行通信的传送方式在串行通信中,数据通常是在两个站(点对点)之间进行传送,按照数据的方向可分成三种传送模式:全双工、半双工、单工。
38、下面就简单介绍三种传送模式。20(1) 全双工(Full Duplex) 。发送 / 接收端 发送 / 接收端数据线地线全双工制式图 3-3 全双工通信示意图数据的发送和接收分别由两根可以在两个不同的站点同时发送和接收,通信双方都能在同一时刻进行发送和接收 15。(2) 半双工(Half Duplex) 。发送 / 接收端 发送 / 接收端数据线地线半双工制式图 3-4 半双工通信示意图使用同一根传输线,通信双方即可发送数据又可接收数据但不能同时接收和发送数据,本文设计的 SP-485 通信接口芯片采用半双工的传送方式。(3) 单工(Simplex) 。甲乙双方只能单向传送数据,发送方和接收方
39、固定。21发送端 接收端数据线地线单工制式图 3-5 单工通信示意图3.3 SP485 多机通信T X DR X D主机D IR OS P 4 8 5ABABS P 4 8 5R OD ED IR ER X DT X D8 9 C 5 2P iABS P 4 8 5R OD ED IR ER X DT X D8 9 C 5 2P i3 . 3 K3 . 3 K1 2 0 + 5 V1 2 0 R ED EP i图 3-6 485 多机通信示意图一主机多从机时:单片机的 RXD 接 SP485 的 RO,单片机的 TXD 接 SP485的 DI; SP485 的 DE 和 RE 接单片机 IO
40、口上(只接在一个 IO 口即可,因为是半双工通信) 16。主机 SP485 与从机 SP485:主机 A 接从机 A,从机 B 接主机B。 (SP485 的 A 和 B 之间接一匹配电阻大小 120 欧) 。2223第 4 章 软件设计4.1 系统软件设计4.1.1 通信协议设计为保证通信正常进行,首先做到单片机的串行口与主控串行口的设置保持一致,即数据格式一致、通信波特率相同。多机通信时每个从机分配一个硬件地址,即用拨码开关设置硬件地址。系统中有两种帧格式,主机想从机发送一帧数据有7 个字节组成帧头、地址、查询/功能码、数据、CRC 校验(高、低字节) 、帧尾,从机接收到一帧数据后进行解码分
41、析,若帧头、帧尾、地址和校验都正确,则从机进行相应的动作,否则清空接收缓存区准备接收下帧数据;同时响应的从机接收到查询码时将自己的柜子状态发送给主机,也以一帧数据的格式 8 字节,包括帧头、本机地址、红外光电开关、电磁锁、限位开关、校验码、帧尾。主机发送数据帧格式:帧头 地址 查询/功能 数据 校验码 帧尾从机回应数据帧格式:帧头 本机地址 红外光电开关 电磁锁 限位开关 校验码 帧尾 主机与从机构成多机通信系统采用主从结构。数据通信总是有主机发起,主机处于发送状态“说”时,从机总是处于“听”的状态。若从机接收到的地址与本机相符,则接受该数据,否则清空缓存区,继续“听”总线上的数据 17。若从
42、机需要发送数据时必须等到主机查询本机地址,才可以提出申请,这样就不会产生错误的响应,系统上电或复位后,所有从机只处于监听状态,主机向向从机发送一帧信息,从机接收到地址帧后与本机地址比较,判断是否一致。若与本机地址相符,则继续执行相应的动作,不符,则清缓存区,继续监听总线上的数据。4.1.2 多机通信时的分时说、听多机传送时,通信协议要合理地协调总线的分时公用,采用 SP-485 总线连接多个站点,由于 485 总线是异步半双工的通信线。在某一时刻,总线智能呈现一种状态,总线上只有一个站点在说,则数据将在通信总线里碰撞结果处于接收24状态的站点无法接收到正确的数据。必须遵从以下几点:(1) 复位
43、时所有从机都应处于接收状态。(2) 控制端 RE、DE 的信号有效脉冲宽应大于发送或接收一帧信号的宽度。(3) 总线上所有从机的发送控制信号在时序上完全隔离,每个从机都有自己的独特的地址,轮询信息中包含字的通信地址,此节点对此真进行应答,其他节点忽略此帧,不做处理。4.2 主程序流程图串口中断初始化定时器初始化4 8 5 接收使能开始结束图 4-1 主程序流程图void Init_Timer0(void)PT0=0; /定时器 0 优先级 0IPHTMOD|=0x01; /使用模式 1,16 位定时器 TH0=T50MS8; /131msTL0=T50MS;25TR0=1; /定时器 0 开关
44、先关闭ET0=1; /定时器 0 中断打开void Init_Uart(void)PS=1; /串口优先级 1IPH/*定时器 1 作为波特率发生器*/SCON = 0X50; / SCON: 模式 1, 8-bit UART, 使能接收 TMOD |= 0x20; / TMOD: timer 1, mode 2, 8-bit 重装TH1 = 0xFD; / TH1: 重装值 9600 波特率 晶振 11.0592MHz TR1=1; / 开定时器 1EA = 1; /开启总中断void main (void)addr=P4 /获取硬件地址Init_Uart();Init_Timer0();R
45、S485_Config(0); /485 默认工作在接收状态ES = 1; /打开串口中断while (1) 串口中断设为最高优先级,定时器 1 作为波特率发生器,波特率设置为9600kbps,SP485_EN=0,从机全都设置为接收状态,等待主机的轮询。264.2.1 串口中断子程序串口中断入口串口中断入口关中断 , 置 R I = 0关中断 , 置 R I = 0接收主机发来的数据存入 R e c _ B u f f 中接收主机发来的数据存入 R e c _ B u f f 中帧头相符 ?帧头相符 ?R e c _ C o u n t + +R e c _ C o u n t + +R e c _ C o u n t 7 ?R e c _ C o u n t 7 ?R e c _ C o u n T = 0YNYN开始开始解码程序中断返回图 4-2 中断子程序流程图void Uart_ISR(void) interrupt 4 /串行中断服务程序