基于ARM芯片LPC2214和μC/OS-II实现数字微波监控系统的设计

发布时间:2023-03-23  

随着嵌入式系统开发的普及和深入,在更加复杂的应用中传统软件开发手段难以满足需求,嵌入式操作系统在开发中扮演着越来越重要的角色,已经被广泛应用于手机、移动计算机设备、网络设备和工控仿真等领域。嵌入式操作系统μC/OS-II源码是公开的,而且它是可移植、可固化、可裁减及可剥夺型的多任务实时内核,可用于各类8位、16位和32位单片机和DSP,目前得到广泛应用。本文给出一种数字微波设备监控系统的设计,该系统引入μC/OS-II之后,系统的开发效率得到提高,整个系统的健壮性得到增强,文中对软件设计应用中遇到的关键问题作了深入讨论并给出了相应的解决方案


1 数字微波设备监控系统的设计

微波通信是一种利用微波传输信息的通信手段,数字微波采用数字信号处理技术,利用微波信道传输数字信号,以下给出一种数字微波通信系统中监控系统的设计。由两个端站组成一条微波链路,每个端站含一个室内单元IDU(In-Door Unit)、一个室外单元ODU(Out-Door Unit)、连接室内单元和室外单元的同轴电缆、以及微波天线。本文主要讨论IDU监控部分CPU相关内容的软硬件设计。


1.1 微波监控IDU部分硬件设计

IDU组成框图如图1所示,主要由业务接口、辅助业务、复分接、微波帧分复接、中频调制解调、中频分合路器、电源、CPU及相关接口组成。

基于ARM芯片LPC2214和μC/OS-II实现数字微波监控系统的设计

主业务数据通过业务接口电路复接后,与公务、辅助数据信号等一起进入微波帧复接模块,复接成微波帧信号,由调制模块完成调制,通过中频分合路器送往ODU。从ODU送来的中频信号经过中频分合路器送往解调模块解调出数据,送到微波帧分接电路,分接出主业务、公务以及辅助数据信息,通过主业务接口电路分接出各支路主业务数据。CPU对所传输的业务数据进行监视和控制,监视所传数据的状态、性能等信息,可设置所传数据的各种参数,通过辅助业务接口可提取和插入各种控制信息。


CPU采用PHILIPS公司的32位ARM芯片LPC2214,该芯片接口丰富,硬件设计时CPU相关接口完成功能如下:输入接口提供按键设置扫描电路,输出接口通过液晶、告警灯及蜂鸣器输出信息,通过I2C接口CPU可实现对串行E2PROM、时钟芯片的存取,CPU本身提供SPI接口,通过该接口实现本端与远端控制信息的交换。串行接口提供一种监控手段,可实现CPU与PC机的通信,完成状态读取和各种命令的设置,以太网接口通过扩展以太网接口芯片实现,通过以太网接口建立与网管中心的通信,可实现网络化的管理。OOK(On/Off—Keying)调制解调电路完成IDU与ODU之间的通信,通过该电路,IDU可对ODU进行设置发功率、收发频率、监视ODU的工作状态等。


1.2 软件结构

软件总体分为应用程序和μC/OS-II两部分,应用程序是用户代码部分,采用C语言编写,完成对整个系统的监控;μC/OS-II为一种嵌入式多任务实时操作系统,其大部分程序使用C语言编写,还有一小部分和处理器密切相关的代码使用汇编语言编写,μC/OS-II包括了三部分,即μC/OS-II核心代码、配置代码和移植代码。


其中,核心代码:包括10个C程序文件和一个头文件,主要实现了系统调度、任务管理、内存管理、信号量、消息邮箱和消息队列等系统功能,而这些功能的实现与处理器类型无关。


配置代码:包括2个头文件,用于裁剪和配置μC/OS-II,这部分代码根据用户的实际需求来配置μC/OS-II系统。


移植代码:这部分主要包括1个汇编文件、1个C程序文件和一个头文件,这部分根据具体的处理器移植μC/OS-II系统的需要修改,它和处理器关系密切。


2 μC/OS-II在微波监控系统中的应用

2.1 应用程序中任务的设计与划分

根据实际的需要,应用软件划分为7个任务:液晶显示、按键接收和告警、时间标志处理、远端信息处理、数据处理、串口任务处理,如图2所示。

图2 应用程序中任务的划分

(1) Task_LCD_OP:主要是处理菜单的显示,根据不同的菜单显示设备的相关信息,并且完成将设置数据保存到公共变量中。

(2) Task_KEY:主要完成外部按键信号的扫描,按照不同的按键转换为不同的编码,并把其值保存到公共变量中。

(3) Task_TIME_FLG:实现设置时间标志,以使其它任务完成定时任务,因为有许多的定时任务,所以设立了一个单独的任务来设置或取消时间标志。

(4) Task_SPI_OP:通过SPI接口完成远端信息交换处理以及数据链路各接口环回等设置。

(5) Task_DATA_OP:主要完成网络数据管理、AD转换、公务的控制,控制微波接口、时钟芯片的设置和读取,完成误码率的计算以及对串行E2PEOM存储芯片数据的存取。

(6) Task_COMM1:主要是完成出串口与其它设备间通信数据的收发。

(7) Task_ODUCOMM0:主要是IDU和ODU设备的通信。


2.2 任务的创建

经过分析和设计之后,就可以使用μC/OS- II所提供的函数创建任务,这里给出了如何创建液晶显示任务的实例,其它任务的创建与之类似,其过程如下:

OSTaskCreate (Task_LCD_OP,(void *)0, &LCDopreate[TaskStkLengh - 1],8);

Task_LCD_OP是要创建的任务;(void *)0是传递给任务的参数,因为这里所创建的任务没有参数,所以其值为0;&LCDopreate[TaskStkLengh - 1]是分配给任务的堆栈,这在程序中是事先定义好的,最后一个数字8是分配给该任务的优先级。


2.4 任务优先级的划分

为了使整个系统的实时性能够得到满足,所以要以任务的紧迫性、关键性、频繁性和中断的重要性等为依据,对不同的任务安排不同优先级别。在系统优先级的分配上,μC/OS-II系统级保留了0和1,用户程序任务优先级从2开始,最低优先级定义为12。

在该监控系统中,任务不同,对实时性要求也不同,通过定时任务来控制。定时任务划分为20ms到5s多个时间级别,在同一个任务中可以再定时地处理一些事务。其中,单独设置了一个任务Task_TIME_FLG来处理这些时间等级的划分和管理,由于它的运行涉及到其它任务的时间标志,是一个关键任务,所以必须将其运行优先级设置为用户程序的最高级别。系统中除了对设备进行设置外,其余时间主要通过串行接口进行信息交互,也是较为重要和紧迫的,这一工作由串口1来承担,所以在设置Task_COMM1的优先级次之;其次是Task_ODUCOMM0;Task_DATA_OP数据操作任务对实时性要求不高,级别随之降低;Task_SPI_OP任务因其数据量小,故不是紧迫任务;Task_KEY按键任务、Task_LCD_OP液晶显示是实现人机交互的,所以实时性要求也比较低。

从以上分析可以把任务的优先级进行如下分配:Task_TIME_FLG为2,Task_COMM1为3,Task_ODUCOMM0为4,Task_DATA_OP为5,Task_SPI_OP为6,Task_KEY为7,Task_LCD_OP为8。


2.5 任务的调度

μC/OS-II调度的依据是任务就绪队列表,系统从处于就绪队列的任务中选择一个优先级最高的来运行,它可以管理多达64个任务。对于多任务的管理,μC/OS- II 是通过调度器完成。其中任务级的调度是由函数OSSched()完成, 而中断级的调度是由函数OSIntExiT()完成。


本系统的任务中,Task_TIME_FLG时间标志处理任务优先级最高,运行也最频繁,它和其它任务切换是属于普通的任务切换,而Task_COMM1和Task_ODUCOMM0的任务切换是属于中断级的切换,只有在发生中断时才切换,正常运行时和普通任务的切换方式一样。其余任务的切换都作为普通切换方式处理。在任务切换过程中如果当前任务需要延时判断,为保证其它任务的正常运行,可通过调用函数OSTimeDly(2)挂起当前任务,其中键显部分有三级菜单,每一级菜单又有许多选项,为了提高按键扫描的实时性,在进入每一级菜单后必须调用该函数挂起当前任务,并扫描有无按键,如有则执行对应处理程序,没有按键则把自己挂起,直到有按键方可退出。μC/OS-II如此处理,程序不会死等,按键和菜单显示配合很协调,只要有按键就能得到及时处理。


2.6 中断的设置与使用

在ARM7体系的CPU中,最多可以有32个中断源。对每个具体的中断源,可以将其定义为快速FIQ中断,使其具有最高的优先级;也可以定义为向量IRQ中断,使其具有中等优先级,但向量IRQ的总数不能超过16个。μC/OS-II本身使用一个定时中断源作为系统节拍中断。


μC/OS-II响应中断的过程:当系统接收到中断请求后,并且CPU处于中断开放状态,系统就会终止当前运行的任务,按照中断向量的指向运行中断服务子程序;当中断运行结束后,系统就会返回到被中止的任务继续运行,或者转向运行另一个更高优先级的就绪任务。


本系统中使用了两个定时中断源、两个串口中断源、一个I2C中断源。μC/OS-II中断的设置和初始化由target.c中的TargetInit函数完成,通过该函数实现了串口、I2C和定时中断的初始化设置。其中VICInit实现过程如下,将中断服务子程序的地址写到相应的中断向量寄存器(VICVectAddrx),并从相应的中断向量控制寄存器(VICVectCntlx)选中相应的中断,将其启用。当CPU接收到中断请求就能找到对应中断服务程序的地址,并转到中断服务程序去运行。


2.7 堆栈的设置与使用

堆栈是依据“后进先出(LIFO)”原则组织的连续存储空间。为满足任务切换、响应中断以及存储任务私有数据的需要,每个任务都配有自己的堆栈。

由于LPC2214的片内Flash是256KB,片内RAM是16KB,根据需要CPU没有扩展外部闪存,故要求代码精练,RAM分配一定要合理。尤其是在液晶显示任务中,由于显示的菜单项目较多,因此任务之间切换增加了RAM的需求。如果每个任务堆栈开辟过小,任务切换时就会出现私有数据丢失,堆栈溢出直至程序运行出错;反之堆栈设置过大,就会使内存RAM空间紧张,因此设置堆栈空间必须适中。本系统中开始设置显示任务堆栈大小为64个字,调试运行中发现进入多级菜单时会出现程序死锁的现象,扩大对应任务堆栈空间问题就得到解决。


3 软件的调试环境与下载

该系统需要建立ADS1.2集成仿真环境,使用了广州周立功单片机发展有限公司提供的专用工程模板。如果硬件没有扩展外部存储器,就使用LPC2100的工程模板;否则使用LPC2200的工程模板。在调试过程中选用DebugInFLASH模式烧写调试;软硬件调试完成,可选用RelInFlash模式烧写,后一种烧写方式会加密芯片,使之无法二次烧写;如果加密之后需要重新烧写芯片,就必须使用ISP进行解密之后方可烧写,调试程序时一定要注意这点。


4 结束语

μC/OS-II应用于数字微波监控系统软件开发之后,系统的软件结构更加简洁实用,系统的实时性和稳定性得到提高,设备在实际应用中表现稳定可靠,并取得一定的经济效益,μC/OS-II在嵌入式系统中具有广泛的应用推广价值。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    用于追踪运动代谢的可穿戴多模式生物微流控芯片开发;通过汗液内源性氨基酸的原位监测可以为健康和代谢提供生理学见解。然而,现有的氨基酸生物传感器无法在运动期间定量评估代谢状态,并且很少用于建立血液-汗液......
    的相关术语定义,皮肤芯片的外观、细胞来源、组件性能、生物性能等技术要求,适用于以微流控芯片为载体的皮肤芯片产品的设计、生产和检测。该标准的发布,将有效促进行业规范,赋能产业高质量发展。 封面......
    ,开发的智能手机APP取代了配备电化学工作站的电脑,不仅更加方便,也更好地满足了用户的个性化管理需求。图2 (a)自驱动微流控芯片示意图;(b)左旋多巴传感器和维生素C传感器的原理;(c)ZIF-8......
    市食品药品监督检验院、南京市计量监督检测院等21家单位共同合作完成。 该标准主要规定皮肤芯片的相关术语定义、皮肤芯片的外观、细胞来源、组件性能、生物性能的技术要求,适用于以微流控芯片为载体的皮肤芯片产品的设计......
    了一种名为“Sweatree”的全弹性可穿戴电化学汗液检测系统。 “Sweatree”系统结构及应用 该系统集成了汗液采集微流控芯片、多参数电化学传感器、微加热器和汗液检测弹性电路板系统。微流控芯片......
    )混合后浇筑在模具上,80℃烘箱烘烤90min后脱模,然后将微通道层和电极层通过氧等离子对准键合(图1(c)),最后焊接电极和PCB引线层,完成微流控阻抗检测芯片的制作,如图1(b)。 图1 细胞阻抗检测芯片设计......
    与危急重症等多个应用场景。BOE(京东方)传感业务带来了无源数字微流控系统、玻璃微流控芯片和医疗影像背板等多款前沿医疗传感器产品。其中,BOE(京东方)无源数字微流控系统可将常规需要大量人工造作、试剂......
    实现汗液的时间序列采样和分析,同时最大限度地减少汗液交叉污染或蒸发的问题。因此,合理的微流控器件设计使得利用比色法可靠地监测汗液中生物标志物的浓度变化成为可能。 据麦姆斯咨询报道,近期,湘潭......
    需要能够检测低浓度的VOC,还能识别那些对车内乘员的健康和舒适度构成重大风险的化合物。微流控气体探测器最近已成为一种经济高效的室内环境VOC离散化解决方案。尽管微流控气体探测器目前可能尚未达到其它分析方法的精度,但这些装置提供了简单而紧凑的设计......
    “脾脏芯片”深度模拟镰状细胞病;镰状血细胞会堵塞脾的过滤器,导致可能危及生命的情况。美国麻省理工学院、新加坡南洋理工大学、法国巴斯德研究所等机构研究人员设计了一种微流控设备,即“脾脏芯片”,可模......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>