历史上的今天
返回首页

历史上的今天

今天是:2025年02月04日(星期二)

2021年02月04日 | 用ARM7和UC/OS-II设计的信号采集系统

2021-02-04 来源:eefocus

在一些工业现场中,设备长时间运行容易出现故障,为了监控这些设备,通常利用数据采集装置采集他们运行时的数据并送给PC机,通过运行在PC机上的特定软件对这些数据进行分析,以此判断当前运行设备的状况,进而采取相应措施。当前常用的数据采集装置,在其系统软件设计中,多采用单任务顺序机制。这样就存在系统安全性差的问题。这对于稳定性、实时性要求很高的数据采集装置来说是不允许的,因此有必要引入嵌入式操作系统。笔者以μC/OSII为操作系统平台,基于ARM7系列处理器,对一种高性能的数据采集系统开发进行了探索。


1μC/OSII嵌入式操作系统简介

嵌入式操作系统μC/OSII(microcontroller operating system)是专为微控制器系统和软件开发而设计的公开源代码的抢占式实时多任务操作系统内核,是一段微控制器启动后首先执行的背景程序,作为整个系统的框架贯穿系统运行的始终。对于对实时性和稳定性要求很高的数据采集系统来说,引入μC/OSII无疑将大大改善其性能。


μC/OSII的特点可以概括为以下几个方面:公开源代码,代码结构清晰、明了,注释详尽,组织有条理,可移植性好,可裁剪,可固化。内核属于抢占式,最多可以管理60个任务。μC/OSII自1992年的第一版(μC/OS)以来已经有好几百个应用,是一个经实践证明好用且稳定可靠的内核。目前国内对μC/OSII的研究和应用都很多。


2 系统基本工作原理

应用时,数据采集系统置于被监控的设备处,通过传感器对设备的电压或者电流信号进行采样、保持,并送入A/D转换器变成数字信号,然后将该信号送到FIFO中。当FIFO中存放的数据到了一定数目时,由ARM7从FIFO中读出,然后通过ARM7的以太网接口或者RS232送给上位机。考虑到要监控的设备可能会很多,所以设计了多路采集通道,他们经过模拟开关后再进入A/D转换器。CPLD是整个系统的控制核心,他控制采集通道的切换、A/D转换器的启/停、转换后的数据在FIFO中的存放地址发生器、产生中断请求以通知ARM7读取存放在FIFO中的数据等。


3 系统硬件结构

系统的基本结构框图如图1所示。该系统采用了Samsung公司的S3C4510B作为系统与上位机沟通的桥梁,S3C4510B是基于以太网应用系统的高性价比16/32位RISC微控制器,他有如下几个主要特点:



硬件方面内含一个由ARM公司设计的16/32位ARM7TDMI RISC处理器核,ARM7TDMI为低功耗、高性能的16/32核,最适合用于对价格及功耗敏感的应用场合。S3C4510B通过在ARM 7TDMI核内容基础上扩展一系列完整地通用外围器件。


片上资源包括2个带缓冲描述符(buffer descriptor)的HDLC通道;2个UART通道;2个GD M A通道;2个32位定时器;18个可编程的I/O口。还有中断控制器;DRAM/SDRAM控制器;ROM/S RAM和FLASH控制器;系统管理器;1个内部32位系统总线仲裁器;1个外部存储器控制器等片内的逻辑控制电路。


这些为μC/OSII的移植提供了优良的物理资源。


软件支持方面他有配套的代码编辑调试环境ADS12和JTAG在线调试功能,使S3C4510B芯片软件可以直接用C编写,这就使μC/OSII的植入成为可能。


12位高速A/D转换电路采用Analog Devices的AD574,该电路输出具有三态锁存功能。预处理电路包括了电流电压互感器、隔离电路和同步采样电路,他可以将信号转换成与AD574相匹配的量值,供后续处理。通讯电路采用常用的以太网接口与上位机相连,而232接口可作为备用,这样该装置既可作为便携式系统使用,也可通过网络来对设备实施实时监控。


4 软件设计部分

软件部分要分别编写S3C4510B部分的程序和CPLD控制程序。前者可分为μC/OSII的移植和各个应用程序的编写,后者用VHDL语言实现。


对于S3C4510B部分,根据整个装置实现的功能和对他的要求进行系统任务分割,并根据实际需要为各个任务分配优先级。系统大致可分为如下几个任务:初始化CPLD控制参数;对FI FO的读取;与上位机的TCP/IP通讯;与上位机的串口通讯。对应每个任务,需要编写相应的应用程序,软件设计部分的关键技术有:


(1)μC/OSII内核向S3C4510B中的移植,要根据处理器的特点合理地修改μC/OS II的3个与处理器相关的文件:OS_CPUH,OS_CPU_AASM,OS_CPU_C.C。主要是将文件中的汇编指令,改为ARM7的汇编指令,并根据CPU的特点对文件中寄存器的初值进行改写。


(2)内存配置问题。对于存储器容量的设计,要综合考虑μC/OSII内核代码和应用程序代码的大小。每个任务是独立运行的,必须给每个任务提供单独的栈空间(RAM),RAM总量的计算公式为:


RAM总量=应用程序的RAM需求+内核数据区的RAM需求+各任务栈需求之总和+最多中断嵌套所需堆栈


(3)TCP/IP协议在μC/OSII中的实现。为了满足嵌入式设备与Internet网络直接交换信息的要求,在μC/OSII中又移植了LwIP协议栈。


LwIP是瑞士计算机科学院(Swedish Institute of Computer Science)的Adam Dunkels等开发的一套用于嵌入式系统的开放源代码TCP/IP协议栈。LwIP的含义是Light Weight(轻型)IP协议。LwIP可以移植到操作系统上,也可以在无操作系统的情况下独立运行。LwIP TC P/IP实现的重点是在保持TCP协议主要功能的基础上减少对RAM的占用,一般他只需要几十k的RAM和40 k左右的ROM就可以运行,这使LwIP协议栈适合在低端嵌入式系统中使用。


LwIP的特性有:支持多网络接口下的IP转发;支持ICMP协议;包括实验性扩展的的UDP(用户数据 报协议);包括阻塞控制、RTT估算、快速恢复和快速转发的TCP(传输控制协议);提供专门的内部回调接口(raw API)用于提高应用程序性能。


LwIP可以很容易地在μC/OSII的调度下,为系统增加网络通信和网络管理功能。LwIP协议栈在设计时就考虑到了将来的移植问题,他把所有与硬件,OS,编译器相关的部份独立出来,放在/src/arch目录下。因此LwIP在μC/OSII上的实现就是修改这个目录下的文件,其他的文件一般不应该修改。在驱动中主要是根据S3C4510B内的以太网控制特殊功能寄存器,编写网络接口的处发送包、接收包函数,初始化以及用于以太网控制器的外部中断服务程序。


5 结语

采用基于ARM7的S3C4510B嵌入式微处理器,可以使系统小型化,便于提高性能以及与各种外设连接扩展,同时降低了成本。μC/OSII作为一个源代码公开的操作系统,在具体应用种稳定可靠。本系统采用ARM7+μC/OSII开发设计,具有精度高、运行稳定、实时性好、抗干扰能力强、性价比高的特点,可以在各种工业场合中广泛应用,达到了设计的初衷。


推荐阅读

史海拾趣

台湾唯圣(GW)公司的发展小趣事
用于肌肉康复、神经康复等,通过间动电流刺激促进肌肉收缩,帮助恢复肌肉力量和神经传导功能。
AMI [American Megatrends Inc]公司的发展小趣事
为用户提供详细的使用指南和安全注意事项,确保用户能够正确、安全地使用该设备。
Einfochips公司的发展小趣事

为了满足不断增长的ASIC和嵌入式服务需求,Einfochips公司决定在印度孟买附近的Pune设立一家新的设计中心。该设计中心将为亚洲和北美客户提供服务,主要涉及存储网络、无线通信和消费多媒体等领域。这一举措不仅加强了Einfochips在亚洲和北美市场的地位,还为其未来的发展奠定了坚实基础。

DAICO公司的发展小趣事

DAICO公司成立于XXXX年,最初是一家位于加利福尼亚的小型私营公司。在公司成立的初期,DAICO专注于研发和生产中频/射频和微波控制产品,以及放大器。这些产品主要用于国防电子和航空航天领域,为DAICO在电子行业中打下了坚实的基础。

Engelking Elektronik GmbH公司的发展小趣事

Engelking Elektronik一直将品质管理作为公司的核心竞争力之一。公司建立了完善的质量管理体系,从原材料采购到产品制造、测试和包装等各个环节都进行严格的质量控制。此外,公司还定期邀请第三方机构进行质量审核和评估,确保产品符合国际标准和客户要求。通过持续改进和优化生产流程,Engelking Elektronik的产品质量得到了客户的高度认可和信赖。

复旦微电子(FM)公司的发展小趣事

Engelking Elektronik一直将品质管理作为公司的核心竞争力之一。公司建立了完善的质量管理体系,从原材料采购到产品制造、测试和包装等各个环节都进行严格的质量控制。此外,公司还定期邀请第三方机构进行质量审核和评估,确保产品符合国际标准和客户要求。通过持续改进和优化生产流程,Engelking Elektronik的产品质量得到了客户的高度认可和信赖。

问答坊 | AI 解惑

晶体管的置换(代换)原则

我们在维修、设计和实验或试制中,常常会碰到晶体管的置换(代换)问题。如果掌握了晶体管的置换(代换)原则,就能使工作初有成效。其置换(代换)原则可划分为三种:即类型相同、特性相近、外形相似。 开关电源,变压器,电源模块,脉宽调制,发 ...…

查看全部问答>

风电词汇中英文对照表4

sprocket 链轮齿 spur gear正齿轮 spur wheel gear正齿轮 square 平方;方块;【修】矩形[SQ],正方形的, 四方的, 直角的, 正直的, 公平的, 结清的, 平方的, 彻底的 square nut 四方螺母, 螺帽 square thread矩形螺纹 square-head bo ...…

查看全部问答>

KITL的问题

以太网的KITL已连通,加载了一些东西就停了。用的优龙2440a开发板, PB中显示: 294772034 PID:c3d93bfa TID:c3d934aa 0x83d93000: [dm9: Chip signature is 90000A46 4294772041 PID:c3d93bfa TID:c3d934aa 0x83d93000: ***NDIS*** (a, 534) ...…

查看全部问答>

关于altera与actel芯片通信的问题

我现在在做毕业设计,我在altera的开发板上进行了简单SPI口的设计,通信正常,能用四根线进行十位二进制的串行传输,并能将传来的数据显示在四位数码管上,也就是用同一块altera的芯片做主片和从片的任务,试验是对的。然后我再将从片的程序烧在ACT ...…

查看全部问答>

EVE下移位的奇怪问题

请问: 1 如果我的CPU是32的,byte a=16; a…

查看全部问答>

51是很流行,很强大,但不适合未来硬件系统的发展.

51是很流行,很强大,但不适合未来硬件系统的发展. 虽然勉强有许多厂商提供带扩展的接口、单周期的片子,51的速度也太落后了,首先指令位长这点就是命门。 流行的东东不一定是好的,关键是要技术能进步的。 执行一个程序周期太长是致命伤。 现在 ...…

查看全部问答>

STM32DSPLib数字滤波FIR没例子啊!

STM32 DSPLib 数字滤波FIR没例子啊!不知到如何使用。;void fir_16by16_stm32(void *a, void *x, COEFS *c, u32 N) 哪位大虾指教一下。谢谢!…

查看全部问答>

TPS61059 可为作为相机闪光灯或电影照明灯的白光 LED 供电

使用白光 LED 的一个难题在于如何使用输入电压宽泛的电池为其供电。 德州仪器 (TI) 便携式电源 DC/DC 应用部工程师Scot Lester为您答疑解惑。…

查看全部问答>

cpld内程序问题?请高手解答

我在CPLD内写了如下程序:always@(posedge CLK1)begin     if(reset==0)    OE373 = 1; else if(ADDR[6:0]==7\'h19&&STRB==1\'b0)                OE37 ...…

查看全部问答>