4 系统软件设计
系统软件设计主要包括数据采集存储和CAN通信两大模块。上电初始化后,单片机开始采集A/D转换信号,按照高频加速度、低频加速度、速度、位移的次序采集信号,并存储到片上存储单元。而与主机的CAN通信将以中断形式完成。图5为系统整体流程。
4.1 采集存储程序设计
由有效值转换器输出的数据将接人片上A/D转换模块,MC9S08DZ60单片机提供 24路12 bit的A/D转换模块。上电后对该模块初始化操作,典型的初始化方式:(1)更新配置寄存器ADDCFG用以选择A/D转换器的时钟源和设定内部时钟频率ADCK。该寄存器还可设置采样时间等参数。(2)更新状态控制寄存器ADCSC2,该寄存器可设定转换的触发方式,如果作为比较器使用时还可设定比较方式。(3)更新状态控制寄存器ADCSC1,该寄存器可用来设定转换方式,即持续转换和单次转换。该寄存器还可设定转换通道以及转换完成后是否触发中断。转换后的数据存入结果寄存器ADCRL和ADCRH供系统调用。
系统上电初始化后,系统主程序按照高频加速度、低频加速度、速度、位移的顺序依次设定模拟开关,为防止因刚刚选定通道后信号不稳定而造成测量失真,因此需加入一段延时程序。延时过后,片上A/D转换器模块采集原始和10倍信号,与门限对比后,存入存储单元。为保证数据的有效性,采用采集多组数据后平均方式。在存储之前,处理后的数据会与单片机内部警告门限(可设定)相比对,如果超出预警门限,则再次测量此信号,若连续3次超出门限,将触发预警中断,向上位机发出预警。
4.2 CAN通信模块
4.2.1 CAN模块简介
MC9S08DZ60内部集成了应用CAN 2.0A/B协议的CAN控制器,包含5个先进先出的接收寄存器,3个使用本地优先级的发送寄存器。在ID识别方面提供了64 bit的掩码寄存器,可分用为2个32 bit的满值寄存器,或4个16 bit、8个8 bit的寄存器,这使总线上的消息寻址更加灵活方便。为满足低功耗需求,该模块提供睡眠、掉电和MSCAN使能3种模式。
CAN总线中的数据帧由7个不同的位场组成:帧起始、仲裁场、控制场、数据场、CRC场、应答场、帧结尾。其中数据场的长度可以为0,但模块封装的帧最多不超过8个字节。根据仲裁位的不同可分为标准帧(11 bit标识符)和扩展帧(29bit标识符)。扩展帧格式包括4个ID寄存器IRD0~IRD3,8个数据寄存器DSR0和1个数据长度寄存器DLR,其中IRD0首位是ID28,IRD3末位是ID0。两者之间还存有信号标识位SRR、IDE和RTR。
4.2.2 CAN通信协议
CAN总线的通信采用主叫轮询方式。由于CAN的限制,每个网络内子节点不宜超过1 000个,这里取10 bit作为源和目的设备的ID标识。因为ID28只能为1,这里规定ID27~ID18为帧源ID,而ID17~ID8为帧目的ID。因为通信需要传输的数据多于8个字节,这里把DSR0作为传输多帧数据的总帧数寄存器,把DSR1作为传输多帧数据的当前帧数寄存器,DSR2作为帧功能寄存器, DSR3~DSR6传输数据,DSR7为校验寄存器。
4.2.3 通信流程
整个网络系统都是由上位机轮询通信的,主机先发送一个请求帧请求建立连接,待收到被叫节点响应帧后,连接建立并由主机请求数据,节点逐帧发送,待主机正确接收后再次请求发送,否则将发送出错帧请求重新发送当前帧,当全部数据正确传输后,主机发送断开连接帧完成通信。这里上位机通过发送一个修正因子给节点,修正上传数据的范围。
5 结束语
经实践证明,该设备网络在实验室条件下能够实现数据采集和网络通信,并达到预期目标。这种应用了安全可靠的CAN总线技术的检测网络,不仅能够有效降低人员现场巡查的难度,其最高1 Mb/s的传输速度可在第一时间发现隐患,排除故障。基于这些优势,CAN总线使人们振动传感器检测设备必然在自动化领域有着广泛的应用前景。