来源:网络转载更新时间:2020-10-16 11:14:08点击次数:3181次
1引言
随着计算机技术及微电子技术的发展,嵌入式系统的应用已经深入到各类产品:智能家电、工业控制、航空航天、医疗、军事等各种智能化数字设备。
嵌入式系统是指以应用为中心,以计算机技术为基础,软件及硬件可以按需要剪裁并且对功能、可靠性、成本有严格要求的专用计算机系统。其在称重仪表的应用将促进称重仪表的智能化、小型化、网络化发展。
称重仪表的发展趋势是高精度、快速响应传感器的信号,但是传统意义的51单片机顺序编程大循环概念,A/D转换釆用中断、查询方式,再加上离散器件组成系统的时延等因素,极大的阻碍了实时性需求的实现。因此开发基于SOGSystemOnChip)片上系统的多任务系统智能称重仪表势在必行。
在系统规划及开发阶段进行系统软件设计时,采用Keil公司RTX51嵌入式实时操作系统作为多任务开发环境RTX51Tiny,适用于51系列的所有派生机型。因为RTX51Tiny不仅是免费的,而且功能强大,可以灵活的分配硬件系统资源(CPU,存储器等)给各个任务,对嵌入式操作系统在智能称重仪表领域的应用具有划时代的意义。[1][2]
2硬件设计
2.1主处理器:
系统的硬件设计釆用美国Cygnal公司的C8051F020,C8051F020器件是完全集成的混合信号系统级MCU芯片,C8051F020具有64个数字I/O引脚,下面列岀了一些主要特性:高速流水线结构的8051兼容的CIP-51内核可达25MIPS全速非侵入式的在系统调试接口;片内带PGA真正12位100ksps的8通道ADC;模拟多路开关,两个12位DAC,可编程更新时序;64K字节可在系统编程的FLASH存储器;4352(4096+256字节的片内RAM);可寻址64K字节地址空间的外部数据存储器接口;硬件实现的SPISMBus/FC和两个UART串行接口;5个通用的16位定时器;具有5个捕捉/比较模块的可编程计数器/定时器阵列;片内看门狗定时器VDD监视器和温度传感器。
具有片内VDD监视器看门狗定时器和时钟振荡器的C8051F020是真正能独立工作的片上系统,所有模拟和数字外设均可由用户固件配置为使能或禁止,FLASH存储器还具有在系统重新编程能力,可用于非易失性数据存储并允许现场更新;8051固件片内JTAG调试电路,允许使用安装在最终应用系统上的产品MCU进行非侵入式不占用片内资源全速在系统调试,该调试系统支持观察和修改存储器和寄存器,支持断点、观察点、单步及运行和停机命令。在使用JTAG调试时,所有的模拟和数字外设都可全功能运行,每个MCU都可在工业温度范围-45°C至Ij+85°C内,使用2.7V-3.6V的电压,工作端口I/O/RST和JTAG引脚都容许5V的输入信号电压。
2.2A/D模块
转换部件釆用转换技术,真正的高速高精度数模转换,采取特殊算法及硬件处理实现16位以上精度。
2.3通讯模块
标准配置设计RS232串口,方便与PC机通迅,PC机上的程序釆用VB编制,根据具体的机型修改下位机的工作参数。这样只要将上位机程序安装在笔记本电脑中,可以方便现场维护、修改整定参数。
2.4显示及键盘模块
采用低温液晶显示,自制各种中文字库,键盘采用轻触银浆按键,可以适应各种温度条件。
3软件设计
3.1下位机软件开发:
使用KeilC51V7.0来进行软件的编写和调试,全部代码用C语言完成,利用Keil支持的RTX51Tiny嵌入式实时操作系统作为工具。该操作系统是一个准并行的多任务环境,和Windows等现代操作系统相似,就是将CPU的时钟切割成很小的等量时间片,然后分配给每个任务,当这个任务执行了给定的时间片断之后,还未完成,则保护现场之后,跳转到下一个任务执行,这样不断的循环执行之,实际上,同一时刻只有一个任务在执行,但是由于时间片非常短,一般为10ms数量级,所以相对上来说,就相当于多个任务在同时执行了。RTX51最小模式最多可支持16个任务,很少的内部RAM及ROM,不需要扩展外部RAM,它利用51内部的定时0来产生报时,能满足大多数简单控制系统的需要。
利用RTX51操作系统的准并行特性,对任务模块进行大小适当的划分,并对各个任务间的通信和时延进行仔细的确认。要指出的是在RTX51下进行多任务编程和以往的顺序单任务编程有以下几个值得注意的不同点:
(1)多任务编程CPU是轮流执行每个任务,所以可以将每个任务设计成死循环的模式,不断重复的进行数据计算或者访问硬件,也不会影响别的任务的执行,当一个任务的数据计算完成之后,可以通过os_wait函数将CPU交出执行别的任务;而传统的大循环顺序单任务模式却独占了所有的CPU资源,尤其全局变量多时,时常得担心是否执行时间太长而不能及时响应外部的异步事件。
3.2数字滤波
数据采集后的数字滤波一直是称重仪表的关键,在本文的软件设计中,专门设计一个数字滤波任务,用来完成数据采集后的滤波工作。经过滤波后再执行显示、通讯等任务。
本文测量一个相对不变的直流信号及应变仪输出,可以用过釆样和求均值技术改善有效分辨率[3]。
如果一个称重装置必须测量一个宽范围的重量而同时又要能分辨很小的重量变化则过采样和求均值能提高测量的有效分辨率。
对ADC测量数据求均值等价于一个降采样低通滤波器,实现过采样和低通滤波器的数字信号处理过程通常被称为插补,从这个意义上说用过釆样实现两个12位ADC码之间的插值求均值的样本数量越大则低通滤波器的选择性越强插值的效果就越好。因此可以达到16位以上的分辨率,适应称重的要求。
但是由于过采样是以牺牲时间来提高精度,对实时性要求较高的产品,本文釆用特殊处理的硬件、软件来实现,避免了系统数据建立延迟,可以在系统要求的时延内达到18位以上精度,同时满足釆样的实时显示,真正做到智能称重仪表的要求。
3.3温度补偿
由于环境温度的周期性变化,对应的传感器的精度受温度影响较大,本文釆用的SOC自己带有温度传感器,可以按照环境温度的变化特性来实时更新精度矫正系数,真正达到智能化称重仪表的功能。重入问题,解决资源冲突和重入的方法可以参考相关文献[4"
本系统实际使用证明:本系统稳定可靠,实时性比釆用传统C51编程更加优越,可靠性更高。本系统在SOC单片机上釆用了RTX51嵌入式操作系统,在智能称重仪表应用领域具有一定的超前意义。
文章来源于网络转载,侵删
×