基于CH375的塔机安全监控系统数据转储技术李东博,殷晨波,缪彬彬(南京工业大学机械与动力工程学院,江苏南京210009)摘要:在塔机安全监控系统中,所采集数据的转储与分析是重要的环节之一。介绍了一种以USB接口芯片CH375为核心,U盘为存储介质的数据转存技术,给出了该系统硬软件的具体实现。现场应用表明,该方案具有成本低、方法简单、便于操作、可靠性高等特点,实现对128M片上存储数据进行一次性转储。关键词:塔机,数据转储,CH375,USB,U盘DatatransmissiontechnologybasedonCH375forTowerCranesafetymonitoringandcontrolsystemLIDong-bo,YINChen-bo,MIAOBin-bin(SchoolofMechanicalandPowerEngineerofNJUT,Nanjing210009,China)Abstract:IntheTowerCranesafetymonitoringandcontrolsystem,datatransmissionandanalysisisaimportantpart.Introduceadatatransmissiontechnologywiththeflashdiskasthestoragemedia,whichUSBinterfacechipCH375iscore.Thesystemofsoftwareandhardwareispresentedindetailandprospectismade.Thefaultdataisstoredthattheschemefeatureslowcosts,simplemethod,operatedeasily,goodreliabilityandthistechnologyhasbeenappliedtothelocomotivefaultrecordersuccessfully.Keywords:TowerCrane,datatransmission,CH375,MicroControllerUnit,USBflashdisk在塔机安全检测中,为了更好地管理和分析数据信息,常常需要把采集到的数据上传到计算机,因此需要两者之间进行通讯。由于塔机安全监控系统是安装于塔机上传统的方式是基于一犯接口的串行通信,这种方式依赖于计算机环境,给数据的传输带来很大的不便。基于的接口盘读写方案,把盘作为中间数据的传输介质,克服了对计算机的依赖,可以方便快捷的传输数据。盘在数据采集系统中的最大优点是它具有良好的通用性、方便、廉价同时,它的抗震性和稳定性也使得在特殊环境中的数据存储更加可靠。1.塔机安全监控系统总体结构塔机安全监控系统的整体结构如图1所示。系统是要实时采集起吊重量、力矩、回转角、吊壁位移、限位等运行数据,在此基础上实时判别是否超限,作出报警或停机等处理。采集到的数据一方面通过液晶屏在驾驶仓操作台上实时显示,另一方面通过无线通信模块传送到监控中心。它主要由CAN总线、人机接口节点、无线收发模块、起重量检测节点、幅度检测节点、高度检测节点、角度检测节点组成,系统以STC89C516为核心。起重量检测模块人机接口通讯模块液晶显示器起重量检测节点人机接口节点拉力传感器幅度检测模块幅度检测节点传感元件高度检测模块高度检测节点传感元件角度检测模块角度检测节点传感元件键盘外部存储器GPS定位模块GPRS无线收发模块无线收发模块CAN总线远程监控中心图1监控系统结构框图2.CH375芯片简介CH375是一种USB总线的通用接口芯片,可以方便地挂接到单片机的控制总线上。同时,CH375的USB主机方式支持常用的USB全速设备,外部单片机可以通过CH375按照相应的USB协议与USB设备通讯。而且,单片机可以直接调用子程序库读写U盘中的文件数据,硬件上只需在原单片机系统中增加一个CH375芯片,综合成本较低。CH375支持全速的USBHOST主机接口,兼容USBV2.0,外围元器件只需要晶体和电容;支持动态切换主机与设备方式;支持常用的12Mb/s全速USB设备;支持USB设备的控制传输、批量传输、中断传输;可自动测USB设备的连接与断开;提供设备连接和断开的事通知。其并行接口包含8位数据总线,4线控制:读选通写选通、片选输入、中断输出。支持5V电源电压和3.3电源电压,CH375芯片还支持低功耗模式。芯片内置电源上电复位电路,一般情况下,不需要外部提供复位其正常工作时需要外部为其提供12MHz的时钟信号。CH375以C语言子程序库提供了USB存储设备的文件级接口,这些应用层接口API包含了常用的文件级操作,可以移植并嵌入到各种常用的单片机程序中。CH375的U盘文件级子程序库具有以下特性:支持常用的FAT12、FAT16和FAT32文件系统;磁盘容量可达100GB以上;支持多级子目录;支持8.3格式的大写字母文件名;支持文件打开、新建、删除、读写以及搜索等。CH375的文件级接口API子程序需要大约600字节的随机存储器RAM作为缓冲区。所有API在调用后都有操作状态返回,但不一定有应答数据。CH375引脚功能为:第1管脚为INT#端,在复位完成后为中断请求输出,低电平有效。第2管脚为RSTI,外部复位输入,高电平有效,内置下拉电阻。第3,4管脚为WR#,RD#。第5管脚为TDX端,仅用于USB主机方式,设备方式只支持并口,在复位期间为输入引脚,内置上拉电阻,如果在复位期间输入低电平那么使能并口,否则使能串口,复位完成后为串行数据输出。第6管脚为RXD,为串行数据输入端。第7管脚NC为空脚,必须悬空处理。第8管脚A0为地址线输入,区分命令口与数据口,当A0=1时可以写命令,当A0=0时可以读写数据。第10,11管脚为UD+、UD-,为USB总线的D+和D-数据线端。第15~第22端为8位双向数据总线。第24管脚为ACT#端,在内置固件的USB设备方式下USB设备配置完成状态输出,低电平有效。3.硬件设计系统连接U盘存储模块,在主板上预留了连接U盘的排线接口。外部U盘存储数据的存储内容为塔机每次工作的年份、日期、开始时间、结束时间、开始高度、结束高度、开始角度、最大载重、最大幅度、最大力矩和警告。当发生安全事故或需要评估塔机的使用寿命时,可导出数据进行分析。U盘存储模块使用CH375为主控芯片,CH375是一个USB总线的通用接口芯片,支持USB-HOST主机方式和USB-DEVICE/SLAVE设备方式。在本地端,CH375具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机/DSP/MCU/MPU等控制器的系统总线上。在USB主机方式下,CH375还提供了串行通讯方式,通过串行输入、串行输出和中断输出与单片/DSP/MCU/MPU等相连接。CH375的USB主机方式支持常用的12Mb/s全速USB设备,外部单片机可以通过CH375按照相应的USB协议与USB设备通讯。CH375还内置了处理Mass-Storage海量存储设备的专用通讯协议的固件,外部单片机可以直接以扇区为基本单位读写常用的USB存储设备(包括USB硬盘/USB闪存盘/U盘)。其并行接口包含8位数据总线,4线控制:读选通写选通、片选输入、中断输出。支持5V电源电压和3.3电源电压,CH375芯片还支持低功耗模式。芯片内置电源上电复位电路,一般情况下,不需要外部提供复位其正常工作时需要外部为其提供12MHz的时钟信号。U盘存储模块的电路图如图2所示。INT#1RSTI2WR#3RD#4TXD5RXD6NC7A08V39UD+10UD-11GND12XI13XO14D015D116D217D318D419D520D621D722GND23ACT#24RST25RST#26CS#27VCC28U1CH3751234USBJ2VCCR12KVCCINT_UC30.47uFVCCWRRDA15C40.01uF12CR112MHz12C115pF12C215pFAD0AD1AD2AD3AD4AD5AD6AD7R21KD1LEDCS_UVCC1122C5100uF1122C6100uFC70.1uF图2U盘存储模块的电路图CH375的TXD引脚通过1kΩ左右的下拉电阻接地或者直接接地,使CH375工作于并口方式。电容C4用于CH375内部电源节点退耦,C4是容量为0.01μF的独石或高频瓷片电容。电容C5和C7用于外部电源退耦,C7是容量为0.1μF的独石或高频瓷片电容。晶体X1、电容C1和C2组成CH375的时钟振荡电路。USB-HOST主机方式要求时钟频率比较准确,X1的频率为12MHz±0.4‰,C1和C2是容量约为15pF的独石或高频瓷片电容。如果电源上电过程较慢并且电源断电后放电时间较长,将导致CH375不能可靠复位。所以在RSTI引脚与VCC之间跨接一个容量为0.47μF的电容C3,并且可以减少干扰。在设计印刷线路板PCB时,需要注意:退耦电容C5和C7尽量靠近CH375的相连引脚;使UD+和UD-信号线贴近平行布线,尽量在两侧提供地线或者覆铜,减少来自外界的信号干扰;尽量缩短XI和XO引脚相关信号线的长度,减少高频时钟对外界的干扰,并应该在相关元器件周边环绕地线或者覆铜。4.软件设计CH375对文件的读写模式分为扇区模式和字节模式。本系统选用速度较快的扇区模式,每次读取4个扇区数据,循环读写至文件结束[3]。工作流程如图3所示。开始初始化结束查询接入?YN复位设备枚举USB设备写入成功?YN新建文件并写入计算长度并关闭文件LED提示完成U盘空间不足?YNLED提示空间满LED提示出错图3U盘程序CH375芯片占用两个地址位,单片机A0引脚为选择命令数据端口,并通过8位并口对CH375芯片进行读写,所有操作命令都是由一个命令码、若干个输入数据和若干个输出数据组成,部分命令不需要输入数据,部分命令没有输出数据[4]。单片机对CH375的操作步骤如下:(1)在A0=1时向命令端口写入命令代码;(2)如果该命令具有输入数据,则在A0=0时依次写入输入数据,每次一个字节;(3)如果该命令具有输出数据,则在A0=0时依次读取输出数据,每次一个字节;(4)命令完成,可以暂停或者转到(1)继续执行下一个命令。CH375芯片专门用于处理USB通信,在接收到数据后或者发送完数据后,CH375以中断方式通知单片机进行处理。CH375内部中断逻辑图如图4所示。或USB总线复位端点0成功SETUP端点0成功OUT端点0成功IN端点1成功OUT端点1成功IN端点2成功OUT端点2成功IN退出低功耗状态设备检测USB挂起检测到USB挂起与外部固件模式与或RS触发器命令GET_STATUS非中断辅助下传中断上传批量下传批量上传唤醒事件挂起事件图4CH375内部中断逻辑图单片机通过CH375芯片接收数据的处理步骤如下:(1)当CH375接收到USB主机发来的数据时,首先锁定当前USB缓冲区,防止被后续数据覆盖,然后将INT#引脚设置为低电平,向单片机请求中断。(2)单片机进入中断服务程序时,首先执行GET_STATUS命令获取中断状态。(3)CH375在GET_STATUS命令完成后,将INT#引脚恢复为高电平,取消中断请求。(4)由于通过上述GET_STATUS命令获取的中断状态是“下传成功”,所以单片机执行RD_USB_DATA命令从CH375读取接收到的数据。(5)CH375在RD_USB_DATA命令完成后释放当前缓冲区,从而可以继续USB通信。(6)单片机退出中断服务程序。单片机通过CH375芯片发送数据的处理步骤如下:(1)单片机执行WR_USB_DATA命令向CH375写入要发送的数据。(2)CH375被动地等待USB主机在需要时取走数据。(3)USB主机取走数据后,CH375首先锁定当前USB缓冲区,防止重复发送数据,然后将INT#引脚设置为低电平,向单片机请求中断。(4)单片机进入中断服务程