1、北京理工大学珠海学院2010届本科生毕业设计 摘要随着城市人口数目的增长和现代化程度的提升,公众对车路交通的质量提出了更高的需求,作为车路交通主力军的车辆必须从安全性,舒适性,便捷性,节能环保等方面有更大的提高。而传统的车辆显然已经无法满足需求,迫切需要新型的车路体系来支撑和发展, 针对城市交通信息化的应用需求,本文介绍了采用EASYARM1138+MC13213等芯片和uC/OS-II操作系统平台下,设计并实现了一种基于ZigBee技术的无线车路自动报站系统;该系统具有体积小,功能强,功耗低,实时性和稳定性好等优点,可以大大降低司机人员的劳动强度,有效的降低由于手工操作带来的误报站等意外情况
2、的发生,可作为城市智能公交系统的一个有机组成部分。对于提高城市交通智能化和信息化具有重要意义。关键字 :EasyARM1138 uC/OS-II ZigBee 公交报站 A new car and wireless station system design and implementation ABSTRACTAs the city population growth and the modernization level of purposes of ascension, the public road traffic quality put forward higher requirem
3、ent, as the main road traffic safety, comfort from vehicles must, convenience, the energy conservation environmental protection etc have greater increase. While the traditional vehicles have apparently unable to meet the demand of the new car, urgently needed to support and development road system i
4、n urban traffic information, the application requirements, this article introduces the EASYARM1138 such chips and MC13213 + uC/OS - II operating system flat, we design and implement a ZigBee technology based on the wireless car path automatically stops system, This system has the advantages of small
5、 size, the function is strong, low power consumption, real-time and good stability etc, can significantly reduce the labor intensity, the driver staff effectively lower the error due to manual stops to wait for an accident happening, but as a city bus system of intelligent an integral part. To impro
6、ve the urban traffic intelligent and informatization has important significance.Key words:EasyARM1138 uC/OS-II ZigBee Broadcast Station System目录摘要IABSTRACTII目录III1前言11.1课题研究背景11.2国内外研究现状11.3开发意义31.4.可行性分析32 功能描述与系统设计42.1功能描述42.2系统设计63 开发环境介绍及硬件选型83.1开发环境介绍83.2硬件介绍83.2.1.EasyRAM1138开发板简介83.2.2.语音模块93
7、.2.3.LED数码管模块93.2.4.LCD显示屏模块103.2.5.ZIGBEE模块113.2.6.控制面板模块113.3软件介绍123.3.1 uC/OS-II介绍123.3.2 ZIGBEE协议简介144 详细设计174.1硬件层设计174.2系统层设计184.3软件层设计214.3.1.任务介绍224.3.2.中断设置244.3.3.系统相关函数设置245 系统测试265.1测试简介265.1.1. 黑盒测试265.1.2. 白盒测试265.1.3. 基于风险的测试275.2测试用例275.3.技术指标335.4系统测试与结果336 系统运行与维护3461在EWARM 中新建一个新项
8、目346.1.1 建立一个项目文件目录346.1.2 新建工作区346.1.3 生成新项目356.1.4 建立文件组376.1.5添加对应文件386.2开发板连线396.3系统的维护40结束语41参考文献42谢 辞43431 前言1.1课题研究背景随着城市人口数目的增长和现代化程度的提升,公众对车路交通的质量提出了更高的需求,作为车路交通主力军的车辆必须从安全性,舒适性,便捷性,节能环保等方面有更大的提高。而传统的车辆显然已经无法满足需求,迫切需要新型的车路体系来支撑和发展。日常生活中,我们经常会遇到这样的情况:车每到一站,都需要人为的按报站器,有时会过站再按,有时甚至不报站,给不少乘客带来不
9、便;即使有人报站,也会因其地方口音,使外来乘客产生误解,引起不必要的麻烦,而准确的报站则直接影响到我们的正常日程。国家和社会都在倡导一种新型的智能车路系统的诞生。嵌入式系统具有体积小、性能强、功耗低、可靠性高以及面向行业应用的突出特征,是一种开发智能车路系统的可行解决方案。本课题利用ZigBee无线通信技术实现车路系统的自动报站,该系统可以大大降低司机人员的劳动强度,有效的降低由于手工操作带来的误报站等意外情况的发生,对于促进智能车路的发展具有积极意义,对社会生活的智能化,信息化发展具有重大的推动作用。1.2国内外研究现状目前车路上采用的车路报站系统具有语音和显示报站的基本功能,主要有以下三种
10、: 第一种是GPS(Global positioning system,全球定位系统)自动报站系统。现在已经正式上市,他可通过GPS全球定位技术确定车路位置,自动报出车辆所在站名,以及服务用语,在特殊情况下还可以把手动报站,车内呼叫等功能一并实现,还可以连接车内LED(Light emitting diode ,发光二极管)大屏显示广告以及站台信息,该系统还可以和GPRS( General Packet Radio Service, 通用分组无线业务)通讯系统连接,实现实时监控车路运行请况,实现总调度过程。目前,国内GPS 语音自动报站系统处于试验阶段,仅有北京,广州、青岛等几个城市采用GPS
11、 语音自动报站技术。目前的系统还存在一些不足,在有些城市,因为树木、高楼的遮挡,存在有些路段接收不到GPS 信号的问题. 第二种是基于电磁波理论的车路自动报站系统。可利用车路上现有的移动电视来接收电磁波,从而显示信息,并在车底部安装线圈并通以微量电流;在距站点数百米处的车道下埋设数匝线圈,其两端连向站牌;并在站牌上安装相关装置。车路以一定速度在路上行驶,在到站前会经过路下线圈,路下线圈切割车上通电线圈所产生的磁场而产生感应电流。电流流经站牌,触动内部装置,使站牌发送出电磁波。在车上的乘客就能从荧屏上获取相关报站信息。该系统的优点是能准确报站,不但给乘客带来方便,而且能让司机更加专心于驾驶,加强
12、了道路安全性。但是铺设价格昂贵,其可靠性也没有实际验证,现在只有部分专家支持,并没有实际使用。 第三种是基于单片机的车路自动报站系统,而这种系统又大致由两种技术支持。其中一种的技术关键是对车轮转轴的转角的脉冲进行计数,将计数值与预置值对比,即可确定报站时刻,达到准确自动的目的。以AT89C51为CPU(Central Processing Unit,中央处理器)在中断处理程序中对外来脉冲计数,利用ISD4004输出语音。系统完成后就可以上机调试,使用时可用配套的烧写器将站与站之间的距离写入单片机内,如果不知道距离可以在机上采用手动方式输入,使装置处于输入状态,出站时按下录入键,到站时按下确定键
13、,就可以将站与站之间对应的数据写入单片机。使用中如果出现错报,采用手动调整即可。该方式应用89C51单片机的高速计数器端口进行脉冲计数,以距离来控制报站时刻,首次实现了模糊控制,改变现有设备的不足。做到简单实用自动化程度高。传感器在车路上的应用极大的提高了设备功能。但是在改变线路或者增加站台等情况时,修改程序比较复杂,尤其是遇到突发状况时司机的任何解决突发状况的方法都将使该系统不能正常运作,目前该系统在实际中使用较少。为了解决GPS在恶劣环境无法准确全自动报站的缺点。因此市我们提出了基于ZigBee无线通信的自动报站系统.通过下面的这个表.可以看出本系统的优点:表11 各种无线通信报站系统的比
14、较报站方式可靠性 精度语音和显示报站 价格监控车路运行请况 缺点人工报站 差差有便宜无大多为手工操作,需要司机在进站时操作,分散了司机的注意力,留下安全隐患。 GPS自动报站系统 好准确 有昂贵 有由于车路站台很多分布在高楼大厦林立的街道,加上阴天雨天,极大的影响了GPS的效果 .基于电磁波理论的车路自动报站可靠性没有实际验证 准确 有昂贵 无铺设价格昂贵,其可靠性也没有实际验证,现在只有部分专家支持,并没有实际使用。 基于ZigBee无线通信的自动报站系统 好准确 有便宜有目前应用前景最好. 1.3开发意义 本产品主要是针对公交系统,地铁系统而设计。该系统能够提供自动报站,温馨提示,LCD显
15、示,测量车内气温等功能。它可以大大降低司乘人员的劳动强度,使司机更专注的开车,使乘客得到更好的乘车环境。因此该产品在公交系统,轨道交通等领域具有很好的市场前景和应用前途, 该系统具有体积小,功能强,功耗低,实时性和稳定性好等优点,可作为城市智能公交系统的一个有机组成部分。对于提高城市交通智能化和信息化具有重要意义。1.4.可行性分析本系统智能报站系统在硬件上需要一个温度传感器,需要一个蜂鸣器实现报警。这两个模块在周立功单片机发展有限公司提供的EasyARM1138开发套件上都配有。同时板上提供了USB电源供电,且支持串口通讯,这样就可以实现终端PC机的远程通讯。根据根据以上分析可以判定硬件部分
16、是可行的。周立功单片机发展有限公司提供了IAR Embedded Workbench for ARM 4.41A软件开发工具和LM LINK仿真器,这样就解决了软件的调试,程序下载问题。我们采用的操作系统是开源而实时的C/OS ,在网上很容易就能找到源码。我们只要对它简单进行裁剪就可以拿来用。在软件上,我们觉得最大的难度是对寄存器和外围模块的配置与初始化,幸好周立功单片机发展有限公司那边提供了一套实验教程,里面详细的介绍如何初始化寄存器和外围模块等等,这样大大提高了我们的工作效率。从软硬件两方面的分析可以看出,本系统的开发技术成熟,从成本、环境与社会预期效益等多种角度考虑,都是可行的。2 功能
17、描述与系统设计2.1功能描述总述:基于ZigBee车路自动报站系统,是一套多功能的嵌入式电子产品,它可以大大降低司乘人员的劳动强度,使司机更专注的开车,并可在各种恶劣的环境下准确实时的自动报站、显示站名。车载设备安装于公交车上,其工作环境比较恶劣,对设备的结构也有一定的要求,本系统采用工作稳定可靠、抗干扰能力强的嵌入式系统。嵌入式系统固化于存储器中,其可靠性高、成本低、体积小、功耗低。嵌入式系统有着广泛的应用领域,在车辆与交通工程中的应用是其中一个重要的方面。将嵌入式设备作为车载终端应用于智能公交系统,使车载终端设备具有更高的智能性、稳定性和扩展性,从而建立起全方位、实时准确、高效的智能交通系
18、统。具体功能如下:a) 当公交车到达站台时,实行高精度自动报站, 自动报出车辆所在站名,以及服务用语,同时LCD大屏显示到达站台的信息。b) 如遇急转弯等特殊情况,司机可以通过旁边的控制面板上的按钮,播报提醒语音来提醒乘客需要注意的事项。c) 在车辆行驶过程中且空闲时(即没有到达站台时),LCD大屏显示广告内容。d) 采用自动+手动的方式报站,如遇到ZigBee通讯模块出现故障时,公交车不会自动报站的情况,司机可以通过旁边的控制面板播报本站信息。e) 在车辆行驶过程,LED1屏为司机所用,显示本车站现在位于第几个站,LED2屏显示车内温度f) 乘客下车请求,乘客可以通过按下车上的按钮,在司机旁
19、边发出的蜂鸣声提醒司机本站有乘客要求下车。板上自带按键功能说明:a) 板上自带的LED1为系统运行指示灯,系统正常运行时,此灯会闪烁,b) 板上自带的LED2为乘客下车指示灯,当有乘客按下车按键时,此灯会闪烁,c) 板上自带的LED3为公交线路的上下行指示灯,灯亮为上行,灯暗为下行.d) 板上自带的KEY1为公交线路的上下行切换按键e) 板上自带的KEY2为乘客下车请求按键如图2-1所示:乘客下车请求指示灯线路上下行切换按键系统运行指示灯乘客下车请求按键线路上下行指示灯复位键图2-1 开发板控制面板按键功能说明:a) 控制面板上的CKEY1为播报下一站,b) 控制面板上的CKEY2为播报上一站
20、,c) 控制面板上的CKEY3为重复播报本站,d) 控制面板上的CKEY4,CKEY5,CKEY6为不同的温馨提示信息.控制面板如图2-2所示:温馨提示按钮播报上一站播报下一站重复报站图2-2 控制面板2.2系统设计本车路报站系统共分成二大部分:站台端:在站点设立一个ZIGBEE模块.每隔一定时间发射一次该站的地址信号帧.车载端:a).交通工具上有一个多功能自动报站系统终端,由ZigBee通信模块, 语音模块, LCD显示模块, LED数码管模块, 控制面板模块组成,接受来自站台发出的站台信息。b).当交通工具行驶到站台发射模块的作用半径时, 车载端的ZIGBEE模块会自动接收到站台ZIGBE
21、E模块发来的信息并进行分析,将数据提交给EASY1138,EASY1138接收到来自己ZIGBEE模块的信号后,从语音模块的存储器是提取音频,并通过音频模块播报出来;同时调用显示屏,显示车路信息。当车载端或站台端出现故障时,导致自动报站系统终端无法接收到信号.可能会导致漏报,本系统设置了控制面板模块,司机可以人工手动进行报站,方式和自动报站是一样的,只不过EASY1138接收的是来自控制面板的信号.c).在交通工具正常行驶的过程中,因为没有接收到ZIGBEE的信号,本系统会自动进入广告的显示。主要是通过操作系统直接调用广告显示任务.系统中有两组 LED数码管,分别用于显示温度和显示现在的站数,
22、温度传感器模块来自1138板,同时设置了看门狗,以防系统出现跑飞现象,确保稳定性。系统功能图和站台与车载端通信图分别如图2-3、图2-4所示:基于ZigBee的多功能自动报站系统终端ZigBee通信模块语音模块控制面板模块LCD显示模块LED数码管模块图2-3 系统功能框图站台端ZIGBEE模块车载端ZIGBEE模块11231站台ZigBee发出网路信标帧2车载端收到信标帧并回复3站台收到回复将终端加入网络并发送本站台信息图2-4 站台与车载端通信图3 开发环境介绍及硬件选型3.1开发环境介绍IAR Embedded Workbench for ARM(简称IAR EWARM)是一个针对ARM
23、 处理器的集成开发环境,它包含项目管理器、编辑器、C/C+编译器和ARM 汇编器、连接器XLINK和支持RTOS 的调试工具C-SPY。在EWARM 环境下可以使用C/C+和汇编语言方便地开发嵌入式应用程序。比较其他的ARM 开发环境,IAR EWARM 具有入门容易、使用方便和代码紧凑等特点。3.2硬件介绍下面详细介绍一下各个模块:3.2.1.EasyRAM1138开发板简介 32位ARM Cortex-M3内核(ARM v7M架构) 兼容Thumb的Thumb-2指令集,提高代码密度25%以上 50MHz运行频率,1.25 DMIPS/MHz,加快35%以上 64KB单周期Flash, 1
24、6KB单周期SRAM 内置可编程的LDO输出2.25V2.75V,步进50mV 支持位操作,最大限度使用内存,并提供创新的外设控制 内置系统节拍定时器(SysTick),方便操作系统移植 7组GPIO,可配置为输入、输出、开漏、弱上拉等模式 4个32位Timer,每个都可拆分为2个独立的16位子定时器, 具有定时、捕获、PWM、RTC等丰富功能 3路全双工UART,位速率高达3.125Mbps,16单元接收FIFO 和发送FIFO,支持串行红外协议(IrDA SIR) 2路SSI,兼容Freescale SPI、MICROWIRE、Texas Instruments 串行通信协议,位速率高达2
25、5Mbps 6路16位PWM,通过CCP管脚能产生高达25MHz的方波 8通道10位ADC,采样速率可达1M/s,附带温度传感器 内置看门狗定时器(WatchDog Timer),确保芯片可靠运行 5只LED指示灯 3只KEY 1只交流蜂鸣器,可演奏动听乐曲,如梁祝 GPIO插针间距正好为2000mil(50.8mm),很容易插接在万用板 或其它自制的电路板上,为教学实验提供了极大方便 仅需插入一根USB电缆就能实现“三合一”功能: 5V供电、程序下载与在线仿真、UART串行通信3.2.2.语音模块ZY17120 是广州致远电子有限公司在2007 年新推出的一款优质、高集成度、单片多信息的,可
26、以适用于多种电子系统的语音录放模块,该芯片是ZY1420 语音芯片的升级产品,它不仅具有ZY1420 的所有优良性能,如大容量的存储器,消噪的麦克风前置放大器,自动增益调节AGC 电路,专用语音滤波电路,高稳定性的时钟震荡电路和语音处理电路,而且提供多项新功能,如多条信息管理,两种操作模式(按键操作模式和SPI 操作模式),灵活的分段录放音控制,音量控制以及擦除等功能,并且在音质、录音时间长度等方面也都有了很大的改善,可以在2.4V5.5V 的宽电压范围内保持最优化工作。除此以外,ZY17120 使用模拟处理存储方式,音频数据直接存储在固体存储器中无须数字压缩,提供更优质的语音和音乐再现,没有
27、常见的背景噪音,且电路断电后语音内容不会丢失。语音信号可通过两个独立的输入通道与ZY17120 相连,即差动麦克风输入通道和单端模拟输入通道。对于输出,ZY17120 同时提供脉宽调制D 类扬声器驱动器和独立的模拟输出。PWM 输出能直接驱动一个标准的8扬声器或典型的蜂音器,同时独立的模拟输出可配置为一个单端电流或电压输出以驱动外部放大器。在SPI 模式时,用户通过串行接口能完全控制对器件的操作。这包括通过指定操作的起始地址和终止地址随机访问存储器阵列内部的任何存储单元。SPI 模式也允许访问模拟通道配置寄存器(APC),该寄存器允许对音频通道、输入、输出和混合进行灵活配置。利用ZY17120
28、 的各个功能,设计者可以在高端产品中灵活的进行语音控制。按照ZY17120芯片说明书的电路图焊接外围的电路后,与开发板上的接线如下:引脚配置:MOSITX(PA3) SSELFSS(PA1) SCLKCLK(PA0) MISORX(PA2)录音可以在SPI和独立方式下进行,经过多次反复试验,发现在独立方式下录音的效果比在SPI方式清晰很多,所以在录音的时候采用了独立方式,播放的时候采用了SPI方式。3.2.3.LED数码管模块ZLG7289B 是广州周立功单片机发展有限公司自行设计的数码管显示驱动及键盘扫描管理芯片,可直接驱动8 位共阴式数码管(或64 只独立LED),同时还可以扫描管理多达6
29、4 只按键。ZLG7289B 内部含有显示译码器,可直接接受BCD 码或16 进制码,并同时具有2 种译码方式。此外,还具有多种控制指令,如消隐闪烁左移右移段寻址等。ZLG7289B 采用SPI 串行总线与微控制器接口,仅占用少数几根I/O 口线。利用片选信号,多片ZLG7289B 还可以并接在一起使用,能够方便地实现多于8 位的显示或多于64 只按键的应用。按照ZLG7289B芯片说明书的电路图焊接外围的电路,驱动两组两位的LED七段数码管,与开发板的通信是模拟SPI方式,接线如下:引脚配置:CSFSS(PC4) CLKCLK(PC5) DIORX(PC6)3.2.4.LCD显示屏模块我们选
30、用了基于ST7920控制器的中文图形128X64的LCD 显示屏,ST7920 控制器系列中文图形液晶模块的软件特性主要由ST7920 控制驱动器决定。ST7920 同时作为控制器和驱动器,它可提供33 路com 输出和64 路seg输出。在驱动器ST7921 的配合下,最多可以驱动25632 点阵液晶。ST7920特性如下: 提供8 位,4 位并行接口及串行接口可选 并行接口适配M6800 时序 自动电源启动复位功能 内部自建振荡源 6416 位字符显示RAM(DDRAM 最多16 字符4 行,LCD 显示范围162行) 2M 位中文字型ROM(CGROM),总共提供8192 个中文字型(1
31、616 点阵) 16K 位半宽字型ROM(HCGROM),总共提供126 个西文字型(168 点阵) 6416 位字符产生RAM(CGRAM) 1516 位总共240 点的ICON RAM(ICONRAM)LCD显示屏模块与开发板的通信是模拟SPI方式,接线如下:引脚配置:SIDTX(PB2) CSFSS(PB0) SCKCLK(PB1)3.2.5.ZIGBEE模块Freescale的MC13213是第二代标准ZigBee无线通信平台,在9x9x1mm 71引脚LGA封装中集成了低功耗的2.4GHz RF收发器和8位微控制器,MC13213器件具有60KB的闪存,MC1321x解决方案能在简单
32、的点对点连接到完整的ZigBee网状网络中用作无线连接,小占位面积封装中的无线电收发器和微控制器的组合使它成为成本效益的解决方案,MC1321x中的RF收发器工作在2.4GHz ISM频段,和802.15.4标准兼容,收发器包括低噪音放大器,1mW的RF输出功率,带VCO的功率放大器(PA),集成的发送/接收开关,板内的电源稳压器以及完全的扩展频谱的编码和译码,MC1321x中的微控制器是基于HCS08系列微控制器单元(MCU),HCS08 A版本,高达60KB的闪存和4KB的RAM。MC13213芯片主要性能 SIP系统单封装; 集成符合 IEEE802.15.4/ZIGBEE 标准的2.4
33、GHz的RF无线收发器; 优良的无线接收灵敏度( -94dbm )和强大的抗干扰性能; 40MHCSO8 内核,60KB FLASH 及 4K RAM; RF输出功率 -27dbm-+4dbm,可通过软件编程设置; 硬件支持 CSMA/CA 功能; 宽电压范围:2.0 3.4 V; 集成8位键盘中断 KBI和8通道10位模数转换ADC,以及低压检测 LVD; 片内看门狗定时器COP。与开发板通信采用串行通信模式,接线如下:引脚配置:TTL/TPD2(U1RX) TTL/RPD3(U1TX)另一个ZIGBEE无线模块,采用与电脑RS232标准串口联线,顺舟科技提供一个底座,底座中使用了SP323
34、2电平转换器,方便与电脑的标准串口通信。3.2.6.控制面板模块主要由六个按键组成,与开发板的六个GPIO口相连,采用低电平触发,在没有铵下的时候处于高电平,接一个10K的电阻连接到3.3V电源。与开发板的接线如下:引脚配置:K1PF1K2PF2K3PF3K4PF5K5PF6K6PF7 3.3软件介绍3.3.1 uC/OS-II介绍3.3.1.1uC/OS-II简介u C / O S 是一种免费公开源代码、结构小巧、具有可剥夺实时内核的实时操作系统。C/OS-II 的前身是C/OS,最早出自于1992 年美国嵌入式系统专家Jean J.Labrosse 在嵌入式系统编程杂志的5 月和6 月刊上
35、刊登的文章连载,并把C/OS 的源码发布在该杂志的B B S 上。C/OS 和C/OS-II 是专门为计算机的嵌入式应用设计的, 绝大部分代码是用C语言编写的。CPU 硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU 上。用户只要有标准的ANSI 的C交叉编译器,有汇编器、连接器等软件工具,就可以将C/OS-II嵌人到开发的产品中。C/OS-II 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点, 最小内核可编译至 2KB 。C/OS-II 已经移植到了几乎所有知名的CPU 上。严格地说uC/OS-II只是一个实时操作
36、系统内核,它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全可以由用户自己根据需要分别实现。uC/OS-II目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量,邮箱,消息队列,内存管理,中断管理等。3.3.1.2 uC/OS-II任务管理uC/OS-II 中最多可以支持64 个任务,分别对应优先级063,其中0 为最高优先级。63为最低级,系统保留了4个最高优先级的任务和4个最低优先级的任务,所有用户可
37、以使用的任务数有56个。uC/OS-II提供了任务管理的各种函数调用,包括创建任务,删除任务,改变任务的优先级,任务挂起和恢复等。系统初始化时会自动产生两个任务:一个是空闲任务,它的优先级最低,改任务仅给一个整形变量做累加运算;另一个是系统任务,它的优先级为次低,改任务负责统计当前cpu的利用率。3.3.1.3 uC/OS-II时间管理uC/OS-II的时间管理是通过定时中断来实现的,该定时中断一般为10毫秒或100毫秒发生一次,时间频率取决于用户对硬件系统的定时器编程来实现。中断发生的时间间隔是固定不变的,该中断也成为一个时钟节拍。uC/OS-II要求用户在定时中断的服务程序中,调用系统提供
38、的与时钟节拍相关的系统函数,例如中断级的任务切换函数,系统时间函数。3.3.1.4 uC/OS-II内存管理在ANSI C中是使用malloc和free两个函数来动态分配和释放内存。但在嵌入式实时系统中,多次这样的错作会导致内存碎片,且由于内存管理算法的原因,malloc和free的执行时间也是不确定。uC/OS-II中把连续的大快内存按分区管理。每个分区中包含整数个大小相同的内存块,但不同分区之间的内存快大小可以不同。用户需要动态分配内存时,系统选择一个适当的分区,按块来分配内存。释放内存时将该块放回它以前所属的分区,这样能有效解决碎片问题,同时执行时间也是固定的。任务间通信与同步对一个多任
39、务的操作系统来说,任务间的通信和同步是必不可少的。uC/OS-II中提供了4中同步对象,分别是信号量,邮箱,消息队列和事件。所有这些同步对象都有创建,等待,发送,查询的接口用于实现进程间的通信和同步。3.3.1.5 uC/OS-II任务调度uC/OS-II 采用的是可剥夺型实时多任务内核。可剥夺型的实时内核在任何时候都运行就绪了的最高优先级的任务。uC/OS-II的任务调度是完全基于任务优先级的抢占式调度,也就是最高优先级的任务一旦处于就绪状态,则立即抢占正在运行的低优先级任务的处理器资源。为了简化系统设计,uC/OS-II规定所有任务的优先级不同,因为任务的优先级也同时唯一标志了该任务本身。
40、任务调度将在以下情况下发生:a) 高优先级的任务因为需要某种临界资源,主动请求挂起,让出处理器,此时将调度就绪状态的低优先级任务获得执行,这种调度也称为任务级的上下文切换。b) 高优先级的任务因为时钟节拍到来,在时钟中断的处理程序中,内核发现高优先级任务获得了执行条件(如休眠的时钟到时),则在中断态直接切换到高优先级任务执行。这种调度也称为中断级的上下文切换。这两种调度方式在uC/OS-II的执行过程中非常普遍,一般来说前者发生在系统服务中,后者发生在时钟中断的服务程序中。调度工作的内容可以分为两部分:最高优先级任务的寻找和任务切换。其最高优先级任务的寻找是通过建立就绪任务表来实现的。u C
41、/ O S 中的每一个任务都有独立的堆栈空间,并有一个称为任务控制块TCB(Task Control Block)的数据结构,其中第一个成员变量就是保存的任务堆栈指针。任务调度模块首先用变量OSTCBHighRdy 记录当前最高级就绪任务的TCB 地址,然后调用OS_TASK_SW()函数来进行任务切换。C/OS-II的组成部分:C/OS-II可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分。a) 核心部分(OSCore.c)是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分。能够维持系统基本工作的部分都在这
42、里。b) 任务处理部分(OSTask.c)任务处理部分中的内容都是与任务的操作密切相关的。包括任务的建立、删除、挂起、恢复等等。因为C/OS-II是以任务为基本单位调度的,所以这部分内容也相当重要。c) 时钟部分(OSTime.c)C/OS-II中的最小时钟单位是timetick(时钟节拍)。任务延时等操作是在这里完成的。d) 任务同步和通信部分为事件处理部分,包括信号量、邮箱、邮箱队列、事件标志等部分;主要用于任务间的互相联系和对临界资源的访问。e) 与CPU的接口部分是指C/OS-II针对所使用的CPU的移植部分。由于C/OS-II是一个通用性的操作系统,所以对于关键问题上的实现,还是需要
43、根据具体CPU的具体内容和要求作相应的移植。这部分内容由于牵涉到SP等系统指针,所以通常用汇编语言编写。主要包括中断级任务切换的底层实现、任务级任务切换的底层实现、时钟节拍的产生和处理、中断的相关处理部分等内容。3.3.2 ZIGBEE协议简介ZigBee是近年来发展迅速的基于无线传感器网络的近距离、低功耗、低成本、低复杂度的无线通信技术。协议定义了两种类型的设备一全功能设备(FFD),精减指令设备(RFD)。全功能设备可作为网络的协调器,路由器,实现FFD功能需要足够的计算能力和存储能力。RFD设备功能简单,由单片机就能完成,FFD设备之间可以相互通信,RFD设备只能与FFD设备通信。协议的
44、这种可裁剪能力极大的降低了组建系统的成本,在很多行业获得了广泛的应用。 ZigBee, 在中国被译为紫蜂,它与蓝牙相类似.是一种新兴的短距离无线技术. 用于传感控制应用(sensor and control).此想法在IEEE 802.15工作组中提出,于是成立了TG4工作组,并制定规范IEEE 802.15.4.2002年,ZigBee Alliance成立.2004年,ZigBee V1.0诞生.它是ZigBee的第一个规范.但由于推出仓促,存在一些错误.2006年,推出ZigBee 2006,比较完善.2007年底,ZigBee PRO推出ZigBee的底层技术基于 IEEE 802.1
45、5.4.物理层和MAC层直接引用了IEEE 802.15.4在蓝牙技术的使用过程中,人们发现蓝牙技术尽管有许多优点,但仍存在许多缺陷。对工业,家庭自动化控制和工业遥测遥控领域而言,蓝牙技术显得太复杂,功耗大,距离近,组网规模太小等,而工业自动化,对无线数据通信的需求越来越强烈,而且,对于工业现场,这种无线数据传输必须是高可靠的,并能抵抗工业现场的各种电磁干扰。因此,经过人们长期努力,ZigBee协议在2003年正式问世。另外,ZigBee使用了在它之前所研究过的面向家庭网络的通信协议Home RF Lite。长期以来,低价、低传输率、短距离、低功率的无线通讯市场一直存在着。自从Bluetooth出现以后,曾让工业控制、家用自动控制、玩具制造商等业者雀跃不已,但是Bluetooth的售价一直居高不下,严重影响了这些厂商的使用意愿。如今,这些业者都参加了IEEE802.15.4小组,负责制定ZigBee的物理层和媒体介入控制层。IEEE802.15.4规范是一种经济、高效、低数据速率(250kbps)、工作在2.4GHz和868/928MHz的无线技术,用于个人区域网和对等网络。它是ZigBee应用屋和网络层协议的基础。Z