利用avr的铅酸蓄电池管理系统原理及设计
1. 引言
本文以嵌入式 s3c2410为核心芯片,设计和实现了一种高速、高精度且具有一定处理能力的数据采集处理系统,并将其应用于工业过程水位和温度的实时监测。
在工业过程或实验室里,经常需要对多种信号进行同时采集及监测,以便实现性能分析、过程控制、系统恢复等目的。目前,常用的数据采集装置,多采用单片机实现,软件多采用单任务顺序机制,这使得系统不仅处理能力有限,而且存在稳定性差的问题。以嵌入式计算机为核心的嵌入式系统由于具有体积小、性能好、功耗低、可靠性高以及面向行业应用的突出特征,成为继 i t网络技术之后,又一个新的技术发展方向 [1]。
2. 系统总体设计
本设计采用以 arm9为核心的 s3c2410作为数据采集与处理的核心,主要包括以下四个模块:信号采集、数据存储、数据显示、数据传输。模拟信号通过放大电路再输入到 s3c2410处理器片内 a/d转换器,经过处理结果以动态波形的形式显示在 lcd上,并用触摸屏控制显示方式。同时通过串口发送给 pc,在 pc上用 vc++编写的程序对数据进行显示、存储等后续处理。系统结构如图 1所示。
500)this.style.width=500; border=0>
3. 硬件电路设计
温度和水位的测量用的是变送器。以温度变送器为例,本系统选用的是北京赛亿凌科技有限公司的 sty系列一体化温度变送器,它的测量范围是 0~150℃,它的输出是一个与被测温度成线性关系的 4~20ma的恒流信号。
为了满足测量要求,在温度变送器的两个输出端之间接一个电阻,使其输出的电流信号转换成电压信号,考虑到 s3c2410内部 a/d转换器的输入范围是 0~3.3v,因此选用 165 ω的电阻。电路连接图如图 2所示。
500)this.style.width=500; border=0>
由图 2可知,温度变送器产生的 4~20ma电流信号,经电路转化变成了 0.66~3.3v的电压信号,此电压信号传递给 s3c2410内部的 a/d转换器。采样温度值可以这样计算,设采样得到的电压值为ut,单位为 v,对应温度为 t,单位为℃,则 t的值可由式( 1)求得:
500)this.style.width=500; border=0>4. 系统软件设计
软件设计主要是 uc/os-ii移植和任务的编写。uc/os-ii是一个免费的、可裁减、源码开放、结构小巧、抢占式的实时多任务嵌入式内核,主要面向中小型嵌入式系统,具有执行效率高、占用空间小、可移植性强、实时性能优良和可扩展性强等特点[2]。
为了方便移植,绝大部分 uc/os-ii的代码是用 ansi c语言编写的;但是仍需要用 c语言和汇编语言写一些与处理器硬件相关的代码,这是因为uc/os-ii在读/写处理器寄存器时,只能通过汇编语言来实现。与处理器相关的代码包括 os_cpu.h、os_cpu_a.asm和os_cpu_c.c三个文件,所以移植的主要任务就是修改这三个文件。
(1) 在修改 os_cpu.h中与处理器和编译器相关的代码时要注意几点 [3]:
(a)不同的处理器有不同的字长,uc/os-ii为了确保其可移植性,不使用 c的int,short,long等数据类型,因为这些数据类型是与编译器相关的,是不可移植的。
(b)修改 os_enter_critical()和os_exit_critical()两个宏。uc/os-ii需要先禁止中断再访问代码的临界区,并且在访问完毕后重新允许中断。os_enter_critical()的功能是关中断,在 s3c2410上通过 os_cpu_a.asm中的 ints_off()函数来实现。os_exit_critical()用于开中断,通过 os_cpu_a.asm中的ints_on()函数来实现。
(c)os_stk_growth用来定义堆栈生长方式, 置 0表示堆栈从下往上增长,置 1表示
堆栈从上向下增长。而在本设计中使用的是堆栈从上向下增长 s3c2410处理器,所以置1。(d)os_task_sw()是一个任务切换宏,用于从低优先级任务切换到高优先级任务。它将任务切换函数osctxsw()封装起来。
(2) 修改os_cpu_c.c中与操作系统相关的ostaskstkinit()函数
ostaskstkinit()用于任务堆栈初始化,ostaskcreate()和 ostaskcreateext()通过调用ostaskstkinit()来初始化任务的堆栈结构。图 3显示了ostaskstkinit()在建立任务时,任务堆栈初始化的形式。
500)this.style.width=500; border=0>
(3) 编写os_cpu_a.asm中4个与处理器相关的函数
osstarthighrdy( )在程序中被 osstart( )函数调用,作用是使就绪任务中优先级最高的任务开始运行。 osctxsw()是任务级的任务切换函数,通过执行软中断指令,或者依据处理器的不同,执行tpar(陷阱)指令来实现。osintctxsw()是中断级任务切换函数,通过调用它,可以在 isr中执行任务切换功能。ostickisr()为 uc/os-ii提供一个周期性的时钟源,来实现时间的延迟和超时功能。
5. 应用任务设计
系统流程图如图 4所示。
500)this.style.width=500; border=0>
(1) 初始化uc/os-ii系统环境
图 4的左半部分所完成的功能是启动操作系统,并创建 main_task和 tch_task两个任务。右半部分是 main_task()和 tch_task()的主要内容,这是本设计的重点部分。模拟信号的采集,显示是在 main_task()中完成的,而对显示方式的控制是由tch_task()来完成的。
(2) 编程实现 a/d转换
模拟数据的采集是在 main_task( )中通过调用函数 void init_addevice()和 intgetadresult(int channel)实现的。模拟信号经 a/d转换后的一个 10位数字量,通过式(1)
(2)中将其转换成实际的数据。式中的 3.3表示模拟量的上限值,1023是经(2 10-1)计算得来的,经计算后的数据就是实际的模拟量值。数据经滤波后分别存放在两个变量中,用于下面的绘图部分程序。
(3) 触摸屏控制程序
这一部分程序的思想是:若有触摸动作,取触点坐标值,判断其是否属于 lcd上显示的控制按钮的坐标范围,若是则做出相应的控制调整,若否则无动作。返回触点坐标的子函数为 tchscr_getscrxy(int *x,int *y)。在本设计中,定义了 3个控制按键,它们用于传递控制信息。
(4) 绘图的api函数
在uc/os-ii系统环境下,绘图必须通过使用绘图设备上下文(dc)来实现。绘图设备上下文(dc)中包括与绘图相关的信息,如:绘图坐标、画笔颜色、画笔宽度等等。在实际使用时,使用createdc()创建绘图设备上下文,使用destorydc(pdc)删除绘图设备上下文,这两条语句在程序中应该成对出现。通过使用 lineto( )、textout()、circle( )、moveto( )等函数,可以将采样值实时的显示到 lcd上。
在 lcd绘图时以下两点值得注意:
(a)在 lcd绘图时要反复使用 lineto( ) 和moveto( )两个函数,但在使用该函数之前,一定要注意到 lcd的分辨率。只有知道了 lcd分辨率,才能知道 lcd的坐标值的范围,从而得到正确的设定结果。本设计使用的 lcd分辨率是640*480。也就是说,初始坐标系的 x值范围为(0≤x≤640),y值范围(0≤y≤480)。
(b)由于lcd宽度有限,当横坐标 x>lcdwidth时,波形就超出显示范围了。解决方法是在 lcd上显示自左至右画出的波形,当画到 lcd的最右端时,清一次屏幕后,重新从 lcd的左端向右画线,同时横坐标的值也相应的改变。
(5) pc机上数据显示程序
为了更好的记录和分析数据,我们在 pc机上用 vc编写了程序,这样可以很好保存和处理数据,为性能分析和系统故障恢复提供了有利条件。
6.结论
uc/os-ii实时操作系统是开放源码且得到实际验证的软件平台,而arm处理器具有强大的32位risc性能。基于uc/os-ii及arm,能大量减轻研发任务,提高研发速度,为在短时间内设计出控制性能优秀的数据采集系统创造了条件。本文数据采集系统已成功应用于工业场合温度和水位的实时测控,达到了很好的效果。
本文作者创新点:摒弃了传统单片机数据采集,采用移植性好的嵌入式 uc/os-ii系统,具有后续开发简单,系统稳定性好,可靠性高等特点。本设计可以很容易得移植到其他数据采集系统当中去。
pcb电路板焊接的几个技巧
DVBCN对 5G 在广电领域的应用等方面进行深入探索和技术突破
东芝推出全新的DT02-V系列监控硬盘 新系列利用了最新的磁记录技术
360云盘“重生“企业版年费堪比移动硬盘,遭用户吐槽
战地服务器需要散热、备件和应用程序可移植性设计
利用AVR的铅酸蓄电池管理系统原理及设计
无源智能锁具——配电箱的运用
如何在PCB设计中使用泪滴
单片机初学者必看:这些单片机学习心得要牢记
标准普尔将诺基亚长期债务评级下调至BBB-
Allegro盲埋孔的创建和添加及其颜色与标记显示设置
对高通设计不满 传苹果自己为5G版iPhone 12研发天线
VF转换电路计算三角波的高低阈值
ITO PET技术,ITO PET技术原理是什么
IHS最新预测:全球处理器出货量年底将达15亿片
三星李在镕被限制就业,会伤及其物联网布局吗?
Xlinx FPGA的DSP设计工具和设计流程
如何有效地从内核中访问设备的全局内存
高端黑科技华为nova 2 Plus魔镜版美得太不像话了!
苹果全新配色:渐变机身+5G网络+3860毫安电池