M68HC08单片机实时多任务操作系统及其在航标灯控制中的应用.docx
- 文档编号:5221825
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:13
- 大小:61.11KB
M68HC08单片机实时多任务操作系统及其在航标灯控制中的应用.docx
《M68HC08单片机实时多任务操作系统及其在航标灯控制中的应用.docx》由会员分享,可在线阅读,更多相关《M68HC08单片机实时多任务操作系统及其在航标灯控制中的应用.docx(13页珍藏版)》请在冰豆网上搜索。
M68HC08单片机实时多任务操作系统及其在航标灯控制中的应用
新型遥控遥测航标灯
1.项目背景:
水路航运系统是运输系统中很重要的一部分,而航道的正确标识是船舶航运安全的重要保障。
在我们长达数千公里的河道和海岸沿线,每隔一定距离就必须有一个航标灯,用来指示航道的安全水位区域。
以前的航标灯是独立分布的,从被放置后,就独自运行。
为了检查航标灯是否运转正常,必须定期的派人去现场巡查。
由于距离遥远,需要检查的地点很多,所以经常要派一些船只和人员不断的巡视。
因为事先不知道航标灯的情况,对航标灯的巡视维护缺乏目的性,有时一个航标灯的维护和更换器件需要一个来回。
这样不但准确性不好,而且船只和人员的开销费用都很大。
为了能及时地了解各航标灯的工作状态和工作正常与否,以便有针对性地对出现故障的航标灯进行维护,我们需要一个新的航标灯,这个航标灯能用无线通信方式(GSM或VHF)远程向中心站报告自己的状态,根据这些状态信息,中心站可以做出是否需要派人进行维护及如何维护的决定。
航标灯应该有一定的自检功能,在出现故障的情况下能及时向中心站发出报警信息,并且能重新启动以便从故障环节中跳出来,能最大限度的保证航标灯的正常工作。
为了在某些情况下能改变灯的灯质(灯的闪亮规律)和其他运行参数,以及对中心站的其他控制做出响应,航标灯应能够执行中心站发来的控制命令。
由于海外的环境恶劣,有时航标灯会脱离固定的位置,航标灯应该有定位装置(GPS),能够检测到漂移的出现,并及时向中心站报警。
中心站知道了航标灯的位置,就不必大范围的搜索而是能根据位置信息直接找到漂移的航标灯。
另外,由于航标灯的能量供给是独立的和有限的,为了延长其持续的工作时间,采用了白天太阳能电池充电和蓄电池蓄电相结合,晚上用蓄电池供电的方式。
所以尽量降低功耗对增加航标灯的使用期限十分重要。
2.项目所实现的功能:
基于以上的考虑,本项目就是实现以上设想,设计一个能够进行远程遥控遥测的新型航标灯。
航标灯可采集的参数:
1)电流模拟输入量:
●太阳能电池充电电流
●电池供电电流
●航标灯工作电流
2)电压模拟输入量:
●太阳能电池充电电压
●蓄电池电压
●航标灯工作电压
3)光传感器输入:
●日光值,并以此判别白天和晚上
航标灯可以执行的遥控命令:
1.航标灯参数召测。
2.航标灯强制开/强制关/光阀控制,三种运行状态之间互相切换。
3.更改航标灯灯质(灯质就是灯的闪亮规律)。
4.设置通信机(VHF或GSM)定时启动时间点。
5.设置航标灯电流、电压的预警、报警门限,包括上限下限。
6.时间校正同步:
统一各航标灯的时间计数值,包括年月日。
7.数据中继:
可向邻近的航标灯转发控制命令或其他数据。
8.遥控充电开关(配充电控制器)。
9.遥控更换灯泡(配智能化灯器)。
10.其他的扩展功能。
航标灯自身的控制功能:
1.接收和执行中心站的遥测遥控命令。
2.依灯质控制航标的亮和灭。
3.增加、修改灯质表项。
4.航标灯参数采集。
5.数据的初步处理和异常检测,包括采样数据的整定,以及同设定的阀值进行比较检查是否出现异常情况。
6.数据校验码(CRC)生成。
7.数据报文生成和即时发送。
8.航标遥测遥控点故障自动报警。
9.电源欠压过压自动报警。
10.灯质异常报警。
11.自动发送报警信号,并附采集的最新参数,以供中心站进行故障判断决策。
12.设置硬件看门狗(watchdog),程序具有自恢复功能。
13.休眠模式与正常状态的自动切换。
14.航标灯当前设置的自动记录与永久保存(写入FLASH)。
15.通信机类型的自动检测,判断是GSM还是VHF或者没有通信机,并根据此判断采用不同的通信控制方式和协议。
16.全球定位(GPS)模块的自动检测与配置。
二.系统框图
1.航标灯远程遥控遥测系统框图
控制台
航标灯N
注:
此图是整个航标灯远程遥控遥测系统框图,它揭示了整个系统的工作情况即:
服务器定时查询每个航标灯,每个航标灯都有互不相同的灯号,航标灯接收到灯号为自身的查询命令后就把数据传送到服务器,服务器根据这些数据来了解航标灯的当前工作状态,并做出合理的操作。
本项目要实现的设计是航标灯,即图中的”航标灯1”到”航标灯N”的部分。
2.航标灯架构框图
航标灯包括以MC68HC908SR12处理器为中心的控制电路、通信机、GPS定位模块、换泡机、以及电源变换模块。
通信机:
可以根据需要选择VHF数传机或GSM通信模块。
用于RTU和中心站之间的数据传输。
RTU:
即RemoteTerminalUnit,完成与通信机、GPS定位模块、换泡机之间的通信,进行系统的逻辑判断,实现与中心站之间的交互式工作模式。
与外接模块的通信都是通过串行通信来进行,其中与VHF数传机和换泡机之间的通信需要经过RS232与TTL电平转换。
除了MC68HC908SR12处理器自身提供的一个串行接口外,另外所需的两个串行接口都是用时间通道的输入捕捉和输出比较功能来模拟的,分别用来外接GSM定位模块和换泡机。
换泡机:
控制灯的闪亮,完成自身数据采样工作,并能接受RTU的控制命令来改变其工作状态;RTU通过参数召测命令获得换泡机的数据。
三.RTU硬件结构
1.航标灯控制器逻辑框图
航标灯控制器硬件特点:
●硬件上以MC68HC908SR12为中心,外挂了多个器件接口,可根据需要连接不同的器件;
●由于MC68HC908SR12只有一个串行口,GSM模块,VHF模块二者同时只能接一个,它们分别代表了不同的对外通信方式;
●GSM模块、VHF模块二者的接口类型不完全相同,GSM模块为40PIN扁平接口,VHF模块可以是RS232电平的或者TTL电平的,这里采用RS232电平的;
●使用TIM1的两个通道输入捕捉、输出比较功能来模拟串行口与换泡机进行串行通信;
●使用TIM2的通道0输入捕捉、输出比较功能来模拟串行口与GPS模块进行串行通信;
●使用TIM2的通道1做定时器,实现50ms的定时;
●太阳能电压采样直接连接到AD输入口进行采样;电流采样通过内部两级放大来进行,另外加上多次采样的平均滤波来获得稳定的数据。
2.通信机(VHF)接口
VHF数传机输入电源12V,通信接口包括RXD、TXD、RTS三根线路。
VHF工作于半双工通信方式,发送和接收状态由RTS来控制。
发送状态RTS为ON,接收状态RTS为OFF。
VHF数传机平时处于等待接收状态,此状态下RTS为OFF,当接收到数据时会自动通过TXD发送到RTU。
使用VHF发送数据时,需提前150ms将RTS置为ON,然后开始发送数据,数据发送完成后,要继续让RTS保持ON状态50ms以上。
在RTS保持ON状态时VHF数传机不能接收外来数据。
数据发送完毕后,应尽快将RTS置为OFF,这样一方面可以降低功耗,另一方面可以保护VHF长期处于发送状态对其造成损坏。
另外考虑到功耗问题,VHF的电源是通过三极管开关来控制的。
在不需要使用VHF的时间里将VHF的电源完全关闭,在需要通信的时候提前几秒钟将VHF电台供电开启。
3.GPS模块接口
GPS定位模块采用GARMINGPS15。
GPS接口包括两根电源线,一根数据输出线,输出TTL电平。
采用TIM2的0通道来模拟串行口,接收GPS发送的数据。
上电后GPS15需要45秒钟以上的时间才能达到稳定状态,这时出来的数据才是稳定的正确数据。
GPS15能够自动接收卫星数据并计算出所在的经纬度,并每隔一秒钟发送一次经纬度数据。
GPS的电源是通过开关来控制的。
RTU每隔一定间隔对GPS进行数据采样,以判断航标是否超出漂移范围,在不需要使用GPS的时间里将GPS的电源完全关闭,在需要通信的时候提前一分钟将GPS模块开启。
4.换泡机接口
换泡机和RTU之间的通信是全双工通信。
RTU使用TIM1的两个时间通道来分别模拟输入和输出。
TIM1CHANNEL1根据波特率和发送的数据来产生一定的波形,采用输出比较功能实现。
TIM1CHANNEL0模拟换泡机的数据输入,首先工作于输入捕捉状态,捕捉到起始位后切换到输出比较方式,根据输入线的电平来获得每一个BIT的数据。
5.RTU采样模块
RTU有两路采样信号,一路是太阳能电压采样,通过采样电阻接入到PTA0。
另一路是电流采样,由于信号比较小,需要通过两级放大来进行采样。
6.电源控制模块
航标灯的输入电压为12V至13.8V,通过电压转换器件和稳压滤波电路,来分别获得12V、5V、3.3V的电压。
外围器件的电压供给都受RTU的控制,通过开关三极管来实现电源的断开和供给。
RS232电平转换芯片器件的电源也可以开关。
为了降低功耗,延长使用时间,通信机(GSM/VHF)和GPS采用间歇工作方式,可以定时开启通信机一段时间,如每小时开10分钟,所有的遥测遥控通信在这段时间内完成,其他的时间通信机关闭。
四.RTU软件结构框图
I.软件总体框图
II.软件分部介绍
1.主程序
主程序循环地检查是否有需要处理的任务,这些任务由任务标志来设定,某一标志被置位时就进行相应的处理。
标志的置位由中断程序设定,发生某一类的中断就置位相应的任务标志,以告知主程序来完成此项任务。
如:
通信机数据接收中断接受由通信机发送来的数据,当一个命令报文接收完成时,将通信机数据处理任务标志置位,在主程序里该任务将被调度,来进行数据报文的处理
保存系统参数的用户设定值,用户改变系统参数后就调用写FLASH程序间这些数据保存到FLASH,这样即使断电也不会造成参数丢失。
2.中断程序
中断程序包括时基中断TBM、通信机数据接收中断、灯器通信中断、GPS数据接收中断、定时器中断。
1)时基中断TBM:
a)每4秒钟产生一次,首先开启PLL模块,设定总线频率。
b)每15次中断将系统时间刷新一次,计算分钟、小时、日期。
c)根据当前时间计算VHF、GPS所在的时间窗口,以决定它们的电源的开启和关闭。
2)通信机数据接收中断:
a)根据到来的数据判断是否是正确的数据报文,抛弃所有不正确的数据报文。
b)接收到正确的数据报文后,置位需要通信机数据处理标志。
3)灯器通信中断:
接收固定帧长的数据,完成后置位需要进行灯器数据处理标志。
4)GPS数据接收中断:
接收固定帧长的GPS数据,完成后置位需要进行GPS数据处理标志。
5)定时器中断:
进行延时控制,产生以50ms整数倍的时间延时。
3.数据采样任务
数据采集包括太阳能电池充电电流,电池放电电流,航标灯工作电流,太阳能电池充电电压,蓄电池电压,航标灯工作电压,日光值,航标灯灯质。
其中航标灯工作电流、蓄电池电压、航标灯工作电压、日光值、航标灯灯质由灯器采集得到,然后通过查询命令来获取。
充电电压直接连接到A/D输入口PORTA-0进行采样;
充电电流采样需要经过两级放大,所以将它连接到两级放大器的输入端OPIN1;使用两级放大时,将模拟模块控制寄存器AMCR置为VSSAM,采样地电压,;然后将AMCR置为OPIN1,采样充电电流。
由于存在波动,所以采样必须有滤波措施,这里采用平均滤波法,连续采样16次,去掉最大值和最小值然后取平均。
4.通信机数据处理任务
通信机的数据根据一定的协议和数据格式来组织。
数据处理的任务就是解读收到的数据报文,提取命令和参数,完成相应操作,然后组织返回的数据报,并发送到中心站。
5.GPS数据处理任务
GPS模块上电后大约45秒钟以后进入稳定工作状态。
GPS数据的准确性与其所在的环境有很大关系。
在空旷地带能同时接收到的卫星信号会更多一些,数据也就更准确,通常在90%以上的情况下GPS数据的精度能使误差保持在15米以内。
GPS模块每一秒钟从串口向外发送一次GPS数据。
每次数据有6条不同的数据项,每个数据项由$F符号开头,以
在这个项目中,需要用到标号为GPRMC的数据项,即“推荐的最小GPS数据集“,它包含了当前时间(世界时)、经纬度、平移速度、移动方位、磁场变化等信息。
这里采用时间模块2的通道0的输入捕捉和输出比较功能来模拟串口接收。
数据的接收采用中断来完成,数据接收完成后置位需要处理GPS数据的标志,然后由主程序调度相应的子程序进行处理。
对GPS数据的处理包括将接收到的用ASCII码表示的数据转化为整型数,然后根据预先测定的基准经纬度值来计算漂移的位置,判断是否超出了漂移上限。
如果超出了漂移上限,就启动一个漂移报警计数器,当这样的报警次数连续发生10次时就认为浮标产生了漂移故障,需要人工检修。
6.定时和睡眠控制
实现定时计数和启动任务,控制系统进入和退出睡眠状态;
系统定时和计时由时间基中断TBM来完成,每4秒钟产生一次中断,每次中断都加1时间计数器,当计数到15次时,清计数器,同时更新系统的时间:
分钟、小时、日、月、年、星期。
如果系统在中断之前是处于休眠状态(STOPMode),则开启PLL模块,等其稳定后将系统频率源设为PLL输出。
在完成一次任务扫描后,如果没有需要完成的任务,系统关闭PLL,执行STOP指令进入休眠状态。
7.功耗控制
RTU采用了各种可能的方式来控制功耗。
首先,各外接模块的电源都由RTU进行控制,在需要的时候开启,在不需要的时候完全关闭。
对于RS232转换模块的供电策略是:
当需要跟换泡机进行通信或者VHF开启的时间里,对该模块供电,当两者都不成立时关闭RS232转换模块的电源。
另外,RTU具有休眠功能,当任务已经完成并且没有新的任务到来时,RTU会自动进入休眠状态,此时系统的功耗降至最低,仅为1mA。
。
在休眠状态下,外围模块的电源全部关闭,CPU的功能模块包括PLL都关闭,只有TBM模块继续工作,定期的将RTU从休眠状态唤醒。
在进入STOP状态之前,先关闭PLL和定时器,TBM中断到达时,首先开启PLL和定时器,然后回到主程序里检查是否有任务需要完成,顺序的完成各项任务后,RTU又进入STOP模式。
8.故障检测及故障恢复,自动报警
RTU可以检测各种故障,包括:
●电源欠压检测;
●电源过压检测;
●正常工作灯泡数不足检测;
●灯质异常检测;
●浮标位置漂移检测;
●RTU工作参数丢失检测;
●GPS通信故障检测;
●换泡器通信故障检测。
电源欠压报警、电源过压报警、正常工作灯泡数不足报警、灯质异常报警、浮标位置漂移报警均由采集的数据根据一定的阀值或限制规则来判断是否出现故障,如电源欠压阀值、电源过压阀值。
RTU工作参数丢失报警、GPS通信故障报警、换泡器通信故障报警有系统操作来判定,当多次试图进行通信都未能成功时,就认为产生了故障。
VHF通信机的故障由中心站检测,当与某一航标灯超过一定时间如两天不能获得联系时,就认为该航标灯的通信机发生故障。
当系统发现产生故障时,就启动相应的故障计数,连续计数超过10次,就确认该故障有效,系统就开启电台,等待与中心站建立联系。
系统内置了故障恢复功能:
●可以接受中心站的复位控制命令,系统复位,将数据设回初始化状态。
●系统还保留了一块区域用来存放出厂值,这部分参数不能被用户修改,并可由复位控制命令度取出来设定为系统的参数。
●启用了看门狗(COP),当程序运行不正常时,程序自动复位,但系统的时间计数在复位过程中受保护不被改变。
●用户的设置被立即保存到flash的用户设置数据区,这样用户只需进行一次设定,就可以保证断电后或者COP复位后改设支不会实效。
另外,RTU还设置了看门狗(COP),防止由于外界的干扰或其他原因时的程序运行不正常。
当程序运行不正常时,看门狗会使其自动复位,重新开始初始化。
程序还设置了由主站控制的复位功能,当主站认为有必要让RTU复位时,可以发送复位命令,在返回正确的应答后,RTU会自动复位。
根据主站的复位参数,可以设置以下三种复位方式:
●硬件初始化:
相当于上电复位
●数据区初始化:
所有的动态数据清零,但是静态数据不变
●参数及数据区初始化:
所有的动态数据清零,静态数据,设回到出厂值;
总结本系统软件的特点如下:
●进入休眠状态后,航标灯由时基中断(TBM)唤醒;
●程序内置对FLASH进行编程的程序,可用来记录当前的设置参数;
●AD输入采用了两级放大,放大倍数依选择的输入信号来源不同而调整;
●程序能够自动检测所连接的外设类型(GSM或VHF),并进行不同的处理;
●使用TIM1的两个通道的输入捕捉和输出比较功能来模拟串行口与换泡机模块进行串行通信;
●使用TIM2的通道0输入捕捉和输出比较功能来模拟串行口与GPS模块进行串行通信
●使用watchdog功能,防止系统由于出现死锁导致的失效;
●允许STOP指令,使系统定时进入休眠状态,达到节省功耗的目的;
●FLASH区域的系统数据的双备份,确保航标灯能在最大限度上保持正常运转,并提高了抗干扰和意外事件的能力;
II.相关的协议
1.无线通信(VHF/GSM)及其规约
航标灯与中心站之间的通信报文有一定格式,包括的数据项如下:
68H(头字符)
长度
长度
68H
地址1
地址1
地址1
地址1
地址1
地址1
命令代码
命令参数
命令参数
数据区
校验和
16H(尾字符)
10H(头字符)
地址1
地址1
地址1
地址1
地址1
地址1
命令代码
命令参数
命令参数
校验和
16H(尾字符)
非定长报文定长报文
航标灯与中心站之间的通信采用中心站主动查询的方式进行。
中心站每隔五秒钟向航标灯发送一个时间同步命令,其中的地址域是循环变化的。
当某一航标灯接收到地址域与自己的ID相同的数据报文时,就做出响应,从而建立起与中心站之间的点对点联系。
联系建立后,中心站可以向航标灯发送各种命令,包括查询命令和设置命令:
1)复位控制命令
2)时钟设置命令
3)时间查询命令
4)终端主动上报控制命令
5)终端透明转发命令
6)实时数据查询命令
7)终端事件查询命令
8)当前时间查询命令
9)设置电台工作时间列表、IDLE状态下数据采样间隔
10)查询电台工作时间列表、IDLE状态下数据采样间隔
11)设置参考GPS经纬度,漂移报警半径、GPS工作时间列表
12)查询当前GPS经纬度,漂移报警半径、GPS工作时间列表
命令可以根据需要来添加和扩展。
2.GPS通信及其规约
GPS数据在冷启动后45秒钟达到稳定,每秒钟发送一次数据。
数据格式如下:
头字符
数据类型
数据区
CRC校验码
尾字符
$
GPRMC
<1>,<2>,…,<12>
两个字节
3.换泡机通信及其规约
换泡机与RTU之间的通信数据报参照以下格式:
灯号
功能码
数据区
CRC校验码
00
03H---参数查询
16H---参数设置
DATA(n*byte)
公式:
X15+X13+1
参数查询没有参数,连CRC码一共四个字节;返回数据包括18各自己的数据。
参数设置命令有9个字节的参数,正确的数据才会被执行,但没有回答,必须通过参数查询命令来了解其是否已被执行。
4.VHF和GPS的时间窗口算法
对VHF和GPS的启停控制采用时间窗口的算法来实现。
一天24小时用36BYTE的数据来表示,共288位,数据的每一位代表一个5分钟的时间窗口,当某一位为1时,表示在这个时间窗口里需要开启VHF和GPS。
根据系统的时间计数,采用一定的算法可以获得该时间所在的时间窗口标识,然后根据表示是1还是0来决定是开启还是关闭VHF和GPS。
五.总结
本方案设计的新型遥控遥测航标灯,充分发挥了MC68HC908SR12芯片在嵌入式处理中的强大硬件功能,采用了多种软件设计技术,产品实用性强,有着广阔的市场。
1.用到了MCU的以下功能:
放大器、A/D采样、串行通信、读写 FLASH操作、定时器模拟串行通信、watchdog 、定时控制、TBM。
2.应用了多种软件技术,充分、灵活的发挥了芯片的处理能力。
3.产品设计考虑了成本控制,实用性强,投入运行后能为航道的管理维护工作带来很大方便;
4.适应特定的环境,采取了各种措施降低功耗,提高系统的稳定性。
该产品接上灯器、GPS定位器、以及GSM或VHF等无线通信设备,可放在河道或沿海,作为可远程遥控遥测的航标灯,已成功应用于宝钢马迹山航道。
也可应用于其他各方面的远程遥控遥测控制。
由于需要完成的控制任务和其他任务很多,以前常用的顺序程序设计方法不够用了,进一步的改进就是设计一个实时多任务操作系统来对这些任务进行调度,以达到最好的实时性和稳定性。
对该操作系统的应有如下要求如下:
1)适用于MC68HC08系列芯片的应用系统;
2)有三层结构:
微内核,系统调用,用户任务;
3)具有实时多任务能力,最多可支持8个任务并行运行;
4)实时性强,系统开销小;
5)实现任务状态的转变,进行任务调度;
6)多优先级,支持抢先机制;
7)各任务之间的资源共享,任务间的通信;
8)统一的定时控制;
9)用户接口简单,通过系统调用为任务服务;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- M68HC08 单片机 实时 任务 操作系统 及其 航标灯 控制 中的 应用