首页 理论教育 道闸控制系统软件设计优化

道闸控制系统软件设计优化

时间:2023-06-26 理论教育 版权反馈
【摘要】:软件设计在道闸控制系统设计中是至关重要的,它决定着系统的可靠性、稳定性。1)系统软件设计软件功能概述软件设计包括无线通信标签软件设计和主控器软件设计两大部分。道闸控制系统的工作流程图8-13智能道闸控制系统整体工作流程智能道闸控制系统工作流程如图8-13所示。

道闸控制系统软件设计优化

软件设计在道闸控制系统设计中是至关重要的,它决定着系统的可靠性、稳定性。本应用软件的设计思想是主要采用模块化程序设计,在程序设计过程中,为了使各个模块有效地完成任务,需要把整个系统划分为几个既相互独立又相互联系的模块,使得对外的数据交换相对简单,增强了可维护性

1)系统软件设计

(1)软件功能概述

软件设计包括无线通信标签软件设计和主控器软件设计两大部分。其中无线通信标签软件设计包括激励源与通信标签通信的软件设计、无线通信收发标签之间的软件设计、无线通信接收标签与主控系统通信的设计。主控器软件设计还包括人机交互设计、网络通信设计、数据存储软件设计、实时时钟设计这几部分。

(2)道闸控制系统的工作流程

图8-13 智能道闸控制系统整体工作流程

智能道闸控制系统工作流程如图8-13所示。唤醒天线使用125kHz频率,每秒发送9次信号。车辆在前门唤醒区域内被唤醒,发送车辆信息为车牌+0x1234;在后门唤醒区域内被唤醒,发送信息为车牌+0xabcd,其中车牌为8个字节的字符,0x1234为进门信号,0xabcd为出门信号。标签每次被唤醒后连续发送3次数据,发送结束后如果依然还停留在该区域,则不再发送数据。只有当标签两次进入相同唤醒区域的时间间隔大于10秒,标签才能再次发送数据。

当车辆进入前门唤醒区域后,平时处于休眠状态的标签被唤醒,并且以2.4GHz的频率连续向主控器发送信息,如车牌+0x1234,3次。主控器的程序在初始化之后,等待接收标签信息。当主控器接收到标签信息后对信息进行判断和匹配,如果匹配正确无误,则开启道闸并向LED发送信息:车牌+时间,其中时间为1个字节的字符,或者当车辆超期时,则主控器向LED发送信息:车牌+“0”,且不开道闸。当车辆行驶到后门唤醒区域时,标签再次被唤醒,发送信息:车牌+0xabcd,则主控器接收信息后判断并匹配,准确无误后关闭道闸。当连续有多辆车进入时,关闸以最后一辆进门的车辆为准。

2)主控器软件设计

(1)网络模块通信设计

PC上位机软件通过以太网访问道闸主控系统,然后向其发送TCP命令、读取文件记录和修改SD卡中的数据。

在以太网中数据传递靠的是MAC地址,而不是IP地址,IP地址和MAC地址具有映射关系,由网络层的ARP协议负责对其进行相应的解析。常用的以太网MAC帧格式有两种标准,一种是DIX Ethernet V2标准,另一种是IEEE的802.3标准。目前最常用的是Ethernet V2格式,如图8-14所示。由图可知,以太网V2帧格式主要由一个导言区、一个起始帧定界符和一个以太网帧组成,其中以太网帧由目标地址、源地址、类型、有效负载以及帧校验序列(FCS)组成。

图8-14 以太网V2帧结构

以太网帧中的导言区包括了8个字节的由二进制0、1间隔组成的代码,当帧在媒介上传输时,导言区自然形成一周期性方波时钟信号用来建立同步。然后再由起始帧定界符表示一帧的实际开始,以使接收器对实际帧的第一位定位。以太网帧主要是通过目标地址和源地址的位置建立通信。6个字节的目标地址是指目的站点的MAC地址,表明要把数据送到哪个站点。若目标地址第一位为0,则指定了一个特定的站点;若为1,则表示目标地址为一组地址,而该地址是事先定义好的;若所有位全为1,则表示接收者为局域网上的所有站点,即该地址是一个广播地址。6个字节的源地址是指源主机的MAC地址,表明该帧来自哪个主机。类型域共占两个2字节,用于表示数据域中包含的高层协议,告诉接收设备该如何解释数据域。在帧传输的最后进行帧校验,使用4个字节的循环冗余校验码进行错误检验。每一个以太网帧均由一个或多个片段组成,每个片段对应一个描述符,LM3S6965内置的以太网控制器中的DMA管理器能够将一个以太网帧的多个片段进行分散(用于接收)和集中(用于发送)。

(2)数据存储软件设计

主控板接收到汽车里的无线通信标签发送的信息后,需要判断车辆是出门还是进门,并且将数据保存到SD卡中。通过与保存在SD卡中的数据进行比对,判断数据库中是否有该车辆以及是否超期,如果该车辆存在且不超期,则开启道闸。

SPI总线模式的数据是以字节为单位进行传输的,每个命令或数据块都是字节对齐。主控板与SD卡的各种通信由主控板控制,在对SD卡进行任何操作前必须首先拉低SD卡的片选信号CS将其选中,然后主控板可向SD卡发送命令。SD卡要对主控板发送的任何命令给予响应,不同的命令会有不同的响应格式(1字节或2字节响应)。SD卡除了对命令响应外,在执行写操作时,要对主控板发送的每一个数据块进行响应(向主机发送一个特殊的数据响应标志)。SPI命令格式如表8-2所示,由6个字节构成,高位在前。

表8-2 SPI命令格式

SD卡在上电复位后,自动进入SD模式,因此本应用中SD卡与LM3S6965的底层软件接口设计首先要使SD卡进入SPI模式,并在SPI模式下对SD卡的内存单元实现读写操作。

主控板在向SD卡发送任何命令之前,应向SD卡发送至少74个时钟周期,以等待SD卡完成上电复位过程,此时主控板应将片选信号线置高。在上电复位完成之后,再将片选信号线CS置低,即选中SD卡,并且再次发送8个时钟周期,确保SD卡选中,发送软件复位指令(CMD0,0x00),如果接收到应答信号0x01,则表示SD卡进入SPI模式,并且处于空闲状态。若要对SD卡实现读写操作,主控板应不断发送指令(CMD1,0x01),直到收到SD卡正确的响应数据0x00,表明SD卡已经被激活,退出空闲状态,可以对SD卡寄存器进行读写和完成数据的传输操作,SD卡初始化成功。

在完成上述操作后,应设置一次性写入或者读取SD卡内数据的长度,这可通过发送设置块长度指令(CMD16,0x10)来实现。本设计中设定一次读写的数据块长度为512字节。当要读取、写入SD卡某一数据块的内容时,则可通过发送读取数据指令(CMD17,0x11)、写入数据块指令(CMD24,0x18)来完成。

对SD卡进行发送命令/接受响应以及读取/写入数据块都是采用LM3S6965的SPI总线进行发送/接收字节或字符串来实现的。SD卡初始化流程如图8-15所示。

图8-15 SD卡初始化流程

(3)人机交互软件设计

人机交互软件是由按键程序和液晶显示(LCD)程序组成的,按键用来发送命令,液晶显示工作状态和参数修改配置情况。

LM1095R为192×128点阵中文/图形液晶显示模块,内置RA8803控制器。用户只要透过MCU对RA8803写入中/英文字型码,就可以直接在LCD面板上显示中英文字型,而不需要透过MCU以绘图方式来处理中英文的显示。

LM1905R提供给使用者两种窗口选择:显示窗口和工作窗口。显示窗口是实际LCD面板的大小,而工作窗口是在实际的显示窗口内设定比显示窗口小的子窗口,并且可以在显示窗口内任意调整所需要放置的地方。

LCD初始化流程如图8-16所示。(www.xing528.com)

图8-16 LCD初始化流程

3)无线通信软件设计

无线通信软件工作流程如图8-17所示。

图8-17 无线通信软件工作流程

(1)激励源软件设计

激励源软件工作流程如图8-18所示。

图8-18 激励源软件工作流程

为防止收到干扰信号,MCP2030唤醒芯片需要收到2ms高电平、2ms低电平的唤醒使能输出时序。唤醒使能输出时序之后是一串表示激励源的ID号的编码。因此激励源发送的125kHz的唤醒信号包括一串MCP2030的使能输出时序和激励源的ID号。

(2)无线通信模块通信软件设计

为了降低模块的功耗,延长电池的使用寿命,车上无线通信模块具有休眠功能。在初始化时,CC2530通过SPI总线对MCP2030的寄存器进行配置。在对MCP2030进行配置操作前,CC2530必须先拉低MCP2030的片选信号CS,然后发送配置命令。命令格式如表8-3所示。

表8-3 MCP2030命令格式

为了有效避免其他信号干扰所激起的激活现象,使MCP2030正常工作,在此设定使能输出序列为2ms高电平、2ms低电平,命令为(0xe1,0x41)。同时在初始化时还需配置使能通道自动选择功能、解调信号输出功能、接收灵敏度控制等。

CC2530的供电模式3用于获得最低功耗的运行模式。在供电模式3下,内部稳压器供电的所有内部电路都关闭,稳压器和所有振荡器也都关闭。复位和外部I/O端口中断是该模式下仅有的运行功能。CC2530软件工作流程如图8-19所示。

图8-19 CC2530软件工作流程

复位和使能的外部I/O中断是唤醒设备的两个仅有的方式。本设计中采用的是外部I/O中断方式唤醒设备。如图8-19所示,进入供电模式3之前,需配置I/O工作模式并开启I/O中断位。系统进入供电模式3,I/O管脚侦测外部中断。当有外部I/O中断时,CC2530切换到工作状态,向主控板发送车辆信息。

为了防止受到同为2.4GHz频段内的其他频率的信号干扰,CC2530初始化时,需对无线模块配置通信通道。IEEE802.15.4—2006标准指定16个通道,它们位于2.4GHz频段之内,步长为5 MHz,编号为11~26。频率与通道的关系为:fc=2 405+5(k-11)[MHz]k∈[11,26]。CC2530支持的载波频率范围是2 394 MHz到2 507 MHz。载波频率可以通过编程FREQCTRL设置,操作频率fc可由下式表示:

式中,FREQCTRL.FREQ[6:0]是寄存器的第0位至第6位。

无线通信发送的帧格式如图8-20所示。

图8-20 帧格式

本应用中通信方式采用的是点对点通信,因而软件设计中,需将主控器上无线通信模块的地址写入帧格式中的地址信息域中。

主控板上无线通信模块的工作流程如图8-21所示。该模块不用电池供电,因此在初始化时,不必考虑睡眠状态与工作状态的切换。

主控板上无线通信模块实时等待无线数据接收,并将数据通过异步串行通信直接转发给LM3S6965。在转发过程中,模块不对数据做任何判断和处理,全部交由主控器处理。为了确保数据转发成功,模块在收到主控板的应答信息后才开始进入下一次无线数据接收,否则重新转发。

图8-21 主控板无线通信模块工作流程

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈