摘 要: 给出了智能化传感器嵌入式控制器的开发环境、典型嵌入式微控制器硬件结构和软件结构及设计方法,同时对智能化传感器的信号处理方法作了简单介绍,最后提供了一些目前广泛应用的嵌入式微控制器芯片。
关键词: 嵌入式微单片机 智能传感器 信号处理
在智能化仪表应用中,片上型微处理控制器已经得到非常广泛的应用,这种微型控制器主要是向着单片化、微型化、高性价比的方向发展,特别是具有片上程序存储器、数据存储器和不同的I/O接口的单片微处理器的出现,改变了传统的智能化仪表的设计方法。传感器本身的智能化给现代仪表设计提供了更大的空间,一些微控制器本身带有A/D和D/A转换器、通讯接口(SPI,CAN等)和保存校正参数的非易失存储器的功能,这种微控制器应用于传感器不仅给传感器功能提供了很多的附加功能,给用户提供了方便,而且减小了系统的有效空间,与一般系统设计中采用放大器、电阻及A/D转换器相比,这种微型控制器在性能/价格比上更具有竞争优势(其具备的A/D功能和D/A功能,通讯接口和程序存储器等可以节约更多的硬件成本)。
例如接近觉传感器在机器人机械手中有十分重要的应用,其线形化是制约其应用的主要的因素,一般红外接近觉传感器输入输出呈明显的非线形,且与温度相关,利用一般的模拟电路设计方法将其转换为标准输入信号提供给A/D转换器ue584尽管在功能上能够实现,但是很难在性能上保持一致性;更为重要的是,在一些场合这种处理方法会增加硬件的成本,由于其体积较大而无法满足实际的使用要求,例如航天机器人使用的机械手上所使用的接近觉传感器对体积、信号的稳定性等都有严格的要求。如果使用嵌入式微型控制器可以通过校准获得的数据表存储到数据存储器中,还可以通过数学模型对温度的影响进行修正,并将测量的结果(距离)直接通过接口传送给上位机,比较两种方式,后者从功能上看毫无疑问节省空间、性能优越,而成本则相差无几,同时有效减少了上位机的处理时间。
下面根据实际使用中涉及到的一些问题做一些论述。
1 嵌入式微处理单片机硬件结构
图1是一典型的微型控制器的结构框图,与一般微处理器不同的是其将程序存储器、数据存储器以及各种输入输出接口集成在单个芯片上,而一般的微型处理器需要外接各种存储器和扩展I/O接口。其基本的构成如下:
CPU——微型控制器中央处理单元比较简单,一般采用精简指令集,不具备浮点运算等高级操作功能,其中通用算术单元ALU可以完成工作寄存器和文件寄存器间的算术和逻辑操作功能,以8位整形数据工作。在一般传感器的应用中无须复杂的数据处理,这种结构简单价格低廉的微单片处理器提供了一较好的解决方案。
数据存储器——由通用寄存器和特殊功能寄存器共同组成,与一般单片机以K为单位的存储空间相比,微型控制器的存储单元较小,只有256个字节甚至更少,由于其空间小,地址简单,故常常用来作为微控制器的文件寄存器。有一些微单片机将这些寄存器作为EEPROM或闪存,用来存储校准数据和一般常数。
程序存储器——用来存储运行程序。一般微型控制器采用特殊的结构保证程序存储器和数据存储器分开,与传统的冯.诺曼结构程序存储器和数据存储器在同一空间相比速度更快,使得处理器在获取命令的同时可以获取数据。同时这种结构可以使数据存储器宽度和程序存储器宽度不一样,后者可以采用较宽的结构以获取更高的编码效率,其空间一般以K为单位记。
I/O口——用来提供数值输入输出通道与外界交换数据,这些口除用于采样状态标志外,还可以通过编程设置为与A/D或D/A交换数据接口,或与其他单片机的通讯接口。
定时器/计数器——其功能主要根据相应的寄存器设置而定,作为计数器,可以对外界的状态变化或频率计数;用作定时器时,可以用来实现对外界事件计时或控制微处理器周期运行,如在某一段时间内没有事件发生时,作为看门狗的定时器可以周期的复位,对于智能型的传感器这种功能显然很有用。
A/D转换器——一般微单片机中都具备内部的4~8路A/D转换器,因此单片的微型机可以同时接入多个传感器并实现信号处理。早期微处理器中的这种A/D转换器是以8位为主,而现在10位或12位精度的微型单片机较为普遍,给用户提供了较大的选择余地。
通讯方式接口——对于不同的应用场合,目前的微单片控制器可以提供不同的通讯协议方式,例如SPI, ,或支持网络接口的CAN,USB方式。
2 软件设计
现代微单片控制器中可以集成大量的硬件,给用户带来了很大的方便,在智能化传感器的应用设计时可以将其仅仅作为一个元件使用,输入模拟信号输出数值信号。而在传感器的智能化中,实际上硬件所占比重微乎其微,软件才是增加传感器功能提高其附加值的主要因素。
在传感器中使用嵌入式微处理单片机来实时处理数据时,其软件的结构不同于一般PC机中所采用的方式,前者简单得多。在传感器中应用单片机的主要功能是读入输入信号,经过简单的数据处理再输出结果,这些功能的实现主要采用下面三种结构方式。
·顺序方式
·中断方式
·多重选择方式
顺序方式——其工作原理如图2所示,其工作方式比较简单,主要适合一些重复性的场合。单片机首先读入传感器的输出,经过数据处理后输出结果,并更新内部变量,执行完后返回重新开始上面的过程见图2(a)。很显然这种方式本身是在一定的循环周期下反复运行,浪费机器的时间,在输入没有发生变化时,这种处理方式降低了传感器本身的反应速度,可以改成见图2(b)结构方式,如输入没有发生变化,返回而输出不变;当输入发生变化时,才进行相应的处理。这样有效提高了输出对应于输入之间反应效率。
中断方式——这是各种CPU处理事件普遍采用的方式,在应用嵌入式微处理器到传感器中同样可以利用中断模式来实现过程控制和处理。这种处理方式在多传感器系统中使用较多,在这里单片机采用上面的方式循环对部分传感器采样的数据处理,执行主程序,当某一传感器的状态改变(例如超过某一阈值)时即执行相应的任务。例如,在使用温度实时补偿的智能多传感器系统中,当温度发生变化时,输入与输出的函数关系发生改变需要通过查表方式获取对应补偿系数即可通过中断方式实现。在有上下位机的多处理器系统中,相互之间的通讯同样可以通过中断方式实现数据的及时交换。当中断发生时,处理器保护好寄存器中数据到堆栈中,优先执行中断功能,当中断程序执行完毕时返回断点恢复现场继续原来的程序,当然这种中断方式的实现取决于处理器的硬件结构。
中断方式一般应用于智能传感器需要通讯和定时执行特殊功能的场合,使得软件结构简单易行。具体程序流程图见图3。
多重选择方式——在智能多传感器系统中,当输入发生变化时需要执行相应的功能,输入状态越多输出的选择越多。例如目前使用的模糊洗衣机广泛采用单片机对各种输入条件(衣服的多少、脏的程度等)判断给出相应的控制策略,实际上这种功能完成可以采用智能传感器直接实现。
多选择方式的程序流程图如图4所示,输出的结果由输入的变化和当前状态决定。用数学方式可表示为:
State_next=F(State_present,Injput);ue705
Output=G(State_present,Input);ue705
其中函数F(X,Y),G(X,Y)表示状态变化逻辑和输出输入对应关系,在嵌入式微处理单片机系统中一般采用查表方式获取相应的数据。
从程序流程图可以看出这种方式符合结构化程序的设计,软件实现较为容易。
实际上,在一些比较复杂的过程中,上面的三种方式往往结合在一起来应用。在嵌入式智能多传感器系统中采用这三种方式主要是由嵌入式微处理器本身的特点所决定的。无法实现浮点运算,采用精简指令集,数据存储器空间有限等因素对程序的设计要求结构简单,方便实现。
3 开发开具
目前支持微处理单片机的开发工具较多,一般厂家都提供相应的技术支持。下面简单介绍Microchip公司提供的Picstart Plus开发工具箱,包括相应的硬件、接口、数据手册和开发软件MPLAB IDE,可以实现对PIC系列的微单片机编程、调试、写入和仿真,其软件开发环境支持在WINDOWS环境下运行,调试简单。由于嵌入式微单片机普遍采用精简指令系统,给编程带来很大的方便,系统仿真功能可以使开发者单步运行程序,并随时监测寄存器中的中间结果,观测程序的执行过程。
此开发系统唯一的缺点在于不能象一般的单片机系统一样直接实现对系统的仿真,当微处理单片机嵌入到传感器系统中时其系统的运行过程仿真比较困难。不过这可以通过对仿真系统做一些改进,在PC机和所设计的嵌入系统之间设计一接口,微单片机的安装位置与仿真机连接在一起以实现对系统的仿真。
4 传感器的数据处理
一般单片机系统对传感器的数据处理方法比较简单,通过A/D转换器的输入实现对传感器的采样,由于其本身计算数据处理功能的强大,对传感器信号处理如线性化、滤波和取阈值等功能比较简单。采用微单片机时,这些功能的实现需要一些特别的处理方法。
4.1 线性化
线性化是传感器中比较常见的问题,通过对微单片机所采样数据进行一定的数据处理可以消除其非线性因素,一般可以通过两种途径来实现。
查表法——预先通过实验校准,将传感器A/D采样的输入和实际的值比较,将结果存入存储器中,对应每一个输入相应查表得到一个输出。例如PIC74**包括一8位的A/D转换器,可以通过256组输入输出链表直接得到真实的结果,A/D转换器的输入相当于链表的指针入口地址,此方法是建立在大量的实验的基础之上的,比较简单。例如红外接近觉传感器、温度传感器可以通过此方法实现线性化。当A/D转换器精度较高时,如PIC16c773、pic16c774的A/D转换器具有12位的精度,需要4096个地址空间存储对应表。
内部插补法——当存储器空间有限时,可以采用插补法实现传感器的线性化。将采样所得到的曲线看成一系列的节点用直线连接在一起,因此只需要将每个节点的首尾数据存储下来,大大节约了存储空间,具体实现方法如下:
(1)采样获取传感器的输入值x;
(2)确定u所在的节点位置n;
(3)读取相应节点的节点输入输出值Xn,Xn+1,Yn,Yn+1
(4)计算输出结果Y
Y=Yn+(X-Xn)Kn
Kn=(Yn+1-Yn)/(Xn+1-Xn)ue5e5
其中每个节点的斜率比值可以预先存入单片机中,通过查表获取以提高计算速度。
4.2 滤波方法选择
从A/D转换器获取的数据毫无疑问存在外界的干扰,需要通过滤波方法除去。在微单片机中比较容易实现的方法是移动窗口滤波法,具体为设置一定的窗口值例如3到8个数据为一组,对其取平均值。当传感器获取的数据变化较快时,例如是采样频率的1/3到1/5时,窗口取值小一些较为理想(3到5),当传感器获取的数据变化较为缓慢时,窗口值取大一些比较容易获得较好的滤波效果。
目前应用于嵌入式智能化传感器中普遍使用的片上微型单片机主要有以下几种。MORTOROLA公司提供的68HC908GP20,包括33路双向I/O口,中断,SCI、SPI串口通讯口,定时看门狗,在线编程等功能;Micrrochip公司提供的PIC系列单片机,除上面提到的一些功能相近外,PIC16c773,PIC116C774还提供12位精度的A/D口,应用非常方便,PIC系列的片上型单片机目前国内使用较广泛;Cypress Semiconductor公司提供的COP684BC/COP8844BC具有CAN接口功能,其他提供这类单片机的公司有Zilog,Digi-Key,Atmel等。
总之,将片上型微单片机嵌入传感器中将大大提高传感器的智能化、实用化方面的功能,给传感器智能化的设计提供了新的思路,其提供的标准化接口大大方便传感器的使用。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』