系统设计

设计与实现一个光学心率测(HRM)系统(又称光电容积脉搏波技术,简称PPG)是一类复杂的、涉及多个领域的项目。设计要素包括人体工程学 、信号处理与过滤、光学和机械设计、低噪声信号接收电路以及低噪声电流脉冲发生器。

可穿戴电子产品制造商正在不断为其保健与健身产品添加心率监测功能,集成化也正在推动心率监测应用中传感器的成本不断降低。目前,许多心率检测传感器都在其高度集成的模组中包含了一些分离的元器件,如模拟前端(AFE)、光电管检测器和发光二极管等。这些模组支持更便捷的实现方式,可在将心率监测功能加入到可穿戴产品中时降低其成本和复杂性。

可穿戴产品的外观形态也在逐渐改变。在胸带已经有效地服务了保健与健身市场多年的同时,心率监测功能现在正在进入到各种手腕佩戴产品中。光学感测技术与高性能、低功耗处理器等方面的技术进步,已经促使手腕佩戴这种外形可适用于许多设计;心率检测算法的精密度也已到达了一种新的水平,从而可以被采用手腕佩带外形的产品所接受。其它新的可穿戴感测应用外观形态和应用场景也在不断涌现,比如头带、体育与健身服装、以及耳塞等。但是,可穿戴生理指标监测的最主要应用场景还将归集于手腕。

没有两种心率监测应用是完全相同的,系统开发人员必须考虑许多设计折中:如产品的舒适性、感测的精度、系统成本、功耗、阳光影响、处理许多皮肤类型、运动影响、开发时间和物理大小等等。所有这些设计因素都影响系统集成,是采用高集成度模组解决方案,抑或是采用集成了更多分离元器件的架构。

图1展示了测量心率信号的基本方法,它依赖于用光学方法从人体组织上提取的心率压力波。图1说明了光进入皮肤后传输的途径:由心率压力波引起的毛细血管舒张和收缩运动对由绿色LED注入人体组织的光信号进行了调制。接收到的信号因为通过了皮肤而被大大地衰减,它被一个光电管接收并送到电子子系统中去处理。源自脉搏的振幅调制信号被检测(过滤掉运动噪声)、分析和显示。

心率感测设计的系统集成考虑
图1 . 光学心率检测的运行原理

心率监测系统设计的一种基本方法采用了一种定制的的微控制器(MCU),它被用于控制外部LED驱动器的脉冲信号发生,并同时读取一个分离的光电管上的电流输出数据。已知光电管的电流输出必须转换为电压,输出给模拟到数字转换(A/D)单元,图2中的原理图说明了这类系统的基本原理。已知电流到电压转换器在光电管电流为0时产生一个等于VREF的电压,而随着电流的增加电压将下降。

用在心率系统中的电流脉冲通常在2mA到300mA之间,具体数值取决于被测的皮肤颜色,以及所期望的信号必须抵消阳光。阳光中的红外辐射透过皮肤组织时的衰减很小,这与期望采用的绿光LED发出的光线不同,所以它能够淹没绿光的信号,除非所采用的绿光非常强,或者添加一个昂贵的红外线阻断滤波器。在通常情况下,射入皮肤的绿色LED光线的强度,是阳光强度的0.1倍到3倍。由于人体组织的严重衰减作用,到达光电管的信号非常微弱,需要产生仅够使用的电流来实现合理的70-100dB信噪比(SNR),以便在即使是有完美的、无噪声运算放大器和A/D转换器的情况下来消除噪声。采用这种消噪的原因是在每秒25次的数据读取中,每次光电管都会接收到一定数量的电子。设计中所采用的光电管的大小在0.1 mm2到7 mm2之间。但是,当它大于1mm时就会因阳光的影响而出现不确定的返回值。

心率感测设计的系统集成考虑
图2. 用光电法获取心率数据所需的基本电子线路

如图2所示,在一个光电心率系统设计中,难以实现和成本很高的功能模块分别是:快速的、大电流的驱动LED的电压到电流转换器,用于光电管的电流到电压转换器,以及运行算法和对序列信号进行处理的MCU。一个可被设置到低至2mA的很低电流,但同时仍然能产生短至10µs的非常窄的光脉冲低噪声(75 - 100 dB SNR)300mA LED驱动器也是一个用分离器件实现起来非常昂贵的模块。

图2中所示的短至10µs的窄光脉冲支持系统去容忍运动和阳光,典型的方法是每秒25次采样率下的每次次的快速光测试,一次测量是在LED关闭的情况下完成的,而另一次则是在LED打开的情况下完成。计算得出的差值消除了环境光的影响,重要的是给出了对闪烁的背景光不敏感的期望的原始光信号测量值。

极短的光脉冲可以提供更强的光脉冲,可以比阳光的亮度更高,这也许是目前的解决方案并使PPG信号载波不被阳光信号所破坏的方法之一。如果阳光信号大于PPG载波,尽管它可以通过减法被消除,但是手臂运动会带来的难以消除的噪声。所以系统会使用一个低电流的LED驱动器和大面积的光电管对运动和阳光噪声进行补偿。

许多期望的心率检测感测功能可以通过预先的设计和集成,用仅仅一个器件来实现。将该项功能的大多数电路集成到一块芯片中,可实现相对较小的3 mm x 3 mm封装,这甚至可以把光电管自己集成于其中。

图3以Silicon Labs的Si118x光学传感器为例来说明电路原理,基于此器件可以相对方便地实现心率检测设计。工程师只需专注于设计的光学部分,其中包括电路板上各部分间的光学单元和将该系统如何与皮肤配合。

心率感测设计的系统集成考虑
图3. 一个只需要外部LED的集成化心率传感器

图3所示的方法可以实现高性能的心率检测解决方案,它并不是一些设计师所期望的小型化或高功效方案。 为了实现更小的解决方案,LED片芯和控制芯片必须被集成到同一个封装中,其中集成了所有的必需的功能,包括光学单元和可以改善LED输出的透镜。图4说明了这种集成度更高的解决方案,它基于Silicon Labs的Si117x光学传感器。

这种心率检测设计不需要额外的LED,因为LED和光电管都集成在模组内部了,而该模组可以直接安装在光学界面的下面,亦即诸如智能手表等可穿戴产品的后盖里面。这种颇具优势的方法使LED与光电管之间的距离短于分离器件设计,这种更短的距离支持极低功耗的运行,这是因为在穿透皮肤时的光损失更低。

集成多个LED也解决了LED与光电管之间的光泄漏问题,其结果是设计人员不必在印刷电路板上添加光阻隔离。不采取这种方法的结果是,用塑料或者泡沫插入物和印刷电路板上的特别铜层来处理隔离。

心率感测设计的系统集成考虑
图4. 一个高度集成的心率检测传感器模组集成了所有必须的元器件

当然,其中还有一款心率检测设计的开发人员不必去关心的部分:心率检测算法。这个寄附在主处理器上软件单元非常复杂,其原因是在用户锻炼或者进行运动时会发生信号变差的情况。最终用户的运动通常会产生其自身的信号,它们可能欺骗真正的心率信号,并在有些时候被错误地认作是心率节奏。

如果一家可穿戴产品的开发人员没有开发算法的资源,第三方供应商可以以软件授权交易的提供这种软件。Silicon Labs也提供用于其Si117x/8x光学传感器心率算法,它们可以在编译后运行在大多数处理器上。

当然,最终由设计师来决定各种心率检测应用中需要多高的集成度才合适, 设计人员能够用高集成度的模组化解决方案和购买算法授权去简化设计过程并加快产品上市。对于对光学感测有深入认识、同时时间及资源也颇为丰沛的开发人员,这可以选择使用分离元器件(传感器、光电管和镜头等等)及自己的系统集成,甚至还可以开发他们自己的心率检测算法。最终,当我们进行心率监测系统设计时,设计师可以选择全部靠自己去完成,或是全部从外部购买。

原文:System integration considerations for heart rate sensing designs
转自:EDN电子技术设计

围观 408

本文选用了意法半导体公司基于ARM最新Cortex—M3内核的STM32F103RB作为主控芯片,通过选择合适的液晶模块,构建了一个高性能低功耗的中文人机界面系统。

1、系统的工作原理

本系统以STM32F103RBT6为核心,采用晶彩光电的AM240320TFT液晶屏作为显示器,完成内容的显示,由于STM32F103RBT6内部Flash为128K,如果用来储存汉字字库,对芯片资源是一种极大的浪费,所以本文中采用微控制器外挂SPI接口Flash的设计思路,将不用重复改变的中文字库存放在外部Flash芯片里面,需要时再通过SPI口调入处理器。由于STM32F103RBT6不带有FSMC,所以采用软件模拟总线的方法,完成对液晶模块的驱动。

2、系统硬件设计

2.1、供电部分电路

由于整个系统采用3.3V供电,所以必须外部稳压电路将电压稳定到3.3V,本设计中采用三端稳压芯片LM1117-3.3,将外部电池电压稳定为3.3V位系统提供电源,为处理器、液晶显示器、SPIFlash供电,采用二极管IN4007串接在电源正极,为系统提供电源反接保护。供电部分原理图如图1所示。

基于STM32的高性能低功耗人机界面系统设计
图1 系统供电部分原理图

2.2、液晶显示部分电路设计

液晶显示部分主要由微控制器驱动液晶显示模块完成人机界面状态的显示,通过发送命令字,完成液晶模块的初始化以及汉字的显示。

2.2.1、STM32F系列ARM微控制器的特点

STM32处理器采用ARM公司最新的V7体系架构的内核Cortex—M3,它的速度比ARM7快三分之一,功耗低四分之三,同时集成了分支预测,单周期乘法,硬件除法等功能,大大地提高了处理器的数据处理能力,同时采用最新的Thumb-2指令集,有效地降低了代码的密度,提高了程序的执行效率,通过对功耗和性能的分析,本文中采用的处理器为STM32F103RBT6,该处理器工作频率为72MHz,内置高速存储器(高达128K字节的闪存和20K字节的SRAM),丰富的增强I/O端口和联接到2条APB总线的外设。供电电压2.0~3.6V,一系列的省电模式保证低功耗应用的要求,达到了性能和功耗的平衡。

2.2.2、TFT液晶显示模块的特点

TFT液晶显示屏是薄膜晶体管型液晶显示屏。TFT液晶为每个像素都设有一个半导体开关,每个像素都可以通过点脉冲直接控制,因而每个节点都相对独立,并可以连续控制。不仅提高了显示屏的反应速度,同时可以精确控制显示色阶,所以TFT液晶的色彩更真。

由于大多数带有LCD控制器的ARM处理器都没有内部的程序存储器和数据存储器,而一般的Cortex—M3内核微控制器都不带有专门的LCD控制器,对于不带有LCD控制器的系统,一般长常用Intel8080接口或者Motorola的6800接口,本系统中采用STM32高速的IO口模拟8080接口时序。综上所述,选用的TFT液晶必须满足两个条件,第一,带有独立的显存。第二,带有8080接口。设计中采用了台湾采用晶彩光电的AM240320TFT液晶屏,它的主控制芯片为ILI9320,自带总大小为172820(24Ox320x18/8)的显存,模块的16位数据线与显寸的对应关系为565方式,它支持包括8080接口在内多种控制输入信号。

STM32采用外部8MHz的晶振作为输入时钟,内部锁相环将时钟倍频到72MHz作为系统时钟,采用GPIO口模拟8080时序并行驱动2.8寸TFT屏,显示部分的处理器和液晶显示器的硬件电路接口电路如图2所示。

基于STM32的高性能低功耗人机界面系统设计
图2 系统液晶接口原理图

2.3、SPI接口Flash存储叠的特点

由于在本系统中整个的汉字字库需要存储在外部Flash中,所以需要选择一种Flash存储芯片,Flash芯片选择需要满足以下要求。第一,尽量占用少的IO口,因为液晶显示器已经采用了并行接口,如果继续选用并行接口的Flash,对芯片的IO消耗较大,这样势必要选用IO更多的芯片,对于便携式设备来说,这是不合理的,所以本系统的设计过程中选用的Flash为SST公司的SST25VF080B,它采用SPI接口,SPI是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,本文中的SPIFlash采用美国SST公司的SST25VF080B芯片,容量为8M位,它工作电压范围为2.7~3.6V,工作在SPI模式0或者模式3,最高工作在50MHz,最小擦除单位为4K字节的扇区,可擦写10万次,数据保持100年以上。而STM32F103RBT6带有高速的硬件SPI接口,可以很方便与SST25VF080B连接通信。所以我们采用SPIFlash来完成对汉字字库的存储,字库存储部分的硬件电路接口图如图3所示。

基于STM32的高性能低功耗人机界面系统设计
图3 SPIFlash接口部分原理图

3、系统软件设计

系统软件包括字库的调用和TFT液晶显示软件设计两个部分,字库调用主要是通过STM32F103RBT6的SPI接口调用存储在SST25VF080B中的中文字库。TFT液晶显示部分主要是通过STM32F103RBT6通用I/O口模拟16位的8080并口,实现对液晶显示器的驱动,在软件设计的过程中需要注意一个问题。就是不同字库编码的标准时不一样的,所以在解码时略有不同,常用的汉字字库有GB2312字库和GBK字库两种。

3.1、GB2312字库和GBK字库

GB2312收录简化汉字及符号、字母、日文假名等共7445个图形字符,其中汉字占6763个。GB2312规定“对任意一个图形字符都采用两个字节表示,每个字节均采用七位编码表示”,习惯上称第一个字节为“高字节”,第二个字节为“低字节”。GB2312—80包含了大部分常用的一、二级汉字,和9区的符号。该字符集是几乎所有的中文系统和国际化的软件都支持的中文字符集,这也是最基本的中文字符集。其编码范围是高位0xa1~0xfe,低位也是0xa1~0xfe;汉字从0xb0a1开始,结束于0xf7fe。GB2312将代码表分为94个区,对应第一字节(0xa1~0xfe);每个区94个位(0xa1~0xfe),对应第二字节,两个字节的值分别为区号值和位号值加32(20H),因此也称为区位码。01~09区为符号、数字区,16~87区为汉字区(0xb0~0xf7),10~15区、88~94区是有待进一步标准化的空白区。GB2312将收录的汉字分成两级:第一级是常用汉字计3755个,置于16~55区,按汉语拼音字母/笔形顺序排列:第二级汉字是次常用汉字计3008个,置于56~87区,按部首/笔画顺序排列。故而GB2312最多能表示6763个汉字。

而GBK内码完全兼容GB2312,同时支持繁体字,总汉字数有2万多个,编码格式如下,每个GBK码由2个字节组成,第一个字节为0X81~0XFE,第二个字节分为两部分,一是0X40~0X7E,二是0X80~0XFE。其中与GB2312相同的区域,字完全相同。把第一个字节代表的意义称为区,那么GBK里面总共有126个区(0XFE~0X81+1),每个区内有190个汉字(0XFE~0X80+0X7E~0X40+2),总共就有126x190=23940个汉字。点阵库只要按照这个编码规则从0X8140开始,逐一建立,每个区的点阵大小为每个汉字所用的字节数乘以190。

这样,就可以得到在这个字库里面定位汉字的方法:

当GBKL《0X7F时:Hp=((GBKH-0x81)&TImes;190+GBKL-0X40)&TImes;(sizex2);

当GBKL》0X80时:Hp=((GBKH-0x81)&TImes;190+GBKL-0X41)&TImes;(sizex2);

其中GBKH、GBKLL分别代表GBK的第一个字节和第二个字节(也就是高位和低位),size代表汉字字体的大小(比如16字体,12字体等),Hp则为对应汉字点阵数据在字库里面的起始地址。

3.2、系统软件流程

对于GBK字库和GB2312字库,他们的解码部分部分略有不同,这个区别主要是由于他们的编码方式不同引起的,对于GBK字库,解码的方式如下:

  qh=*code;
  ql=*(++code);
  if(ql《0x7f)
  ql-=0x40;
  else
  ql-=0x41;
  qh-=0x81;
  foffset=((unsignedlong)190*qh+ql)*(size*2);//得到字库中的字节偏移量
  对于GB2312字库,解码的方式如下:
  qh=*code;
  ql=*(++code);
  ql-=0xa1;
  qh-=0xa1;
  foffset=((unsignedlong)94*qh+ql)*(size*2);//得到字库中的字节偏移量

其中qh、ql分别代表GBK的第一个字节和第二个字节(也就是高位和低位),size代表汉字字体的大小(比如16字体,12字体等),foffset则为对应汉字点阵数据在字库里面的起始地址。

系统启动以后,首先完成时钟的初始化,采用外部8MHz的晶振作为输入时钟,内部锁相环将时钟倍频到72MHz作为系统时钟,完成GPIO的初始化,作为LCD驱动IO的通用IO口的时钟设置为50MHz的推挽模式,接着完成硬件SPI1的初始化,SPI时钟频率设置为18MHz,接着完成液晶的初始化,此过程是通过发送特定的命令序列来实现的,然后刷新显示背景颜色,设置字体颜色,通过上面的程序完成字库中汉字点阵序列的查询,将汉字点阵送液晶屏显示。

系统软件设计的流程图如图4所示。

基于STM32的高性能低功耗人机界面系统设计
图4 汉字显示部分程序流程图

采用方法还不但可以实现标准字体的显示,还可以根据系统要求,采用专用软件生成各种需要的字体,为设计多样性的人机界面系统提供了一种可行的方案。

4、结论

本文根据在全站仪应用于飞机的测量过程中的实际需要,设计了用于测量计算的人机界面系统,在该系统中,采用的处理器内核为ARM最新的Cortex—M3,它基于最新ARMv7架构,采用了至今为止最小的ARM内核,有效地降低了系统功耗。采用SPIFlash来存储汉字字库,通过彩色TFT液晶屏显示,有效地扩展了应用的范围,经过实验验证,本系统的设计方法完全达到设计要求。

来源: eepw.com

围观 389

在自动控制系统中,执行器同控制器或控制系统相连,共同实现对工业过程的控制。现场总线是过程控制技术、仪表工业技术和计算机网络技术三大技术领域相结合的产物。WorldFIP现场总线既是实时的,可预测的,又是面向未来的、能够和Internet连接的现场总线。本文对开发基于WorldFIP现场总线技术的智能电动执行器的软硬件进行了探讨,包括:MCU控制板卡,通信板卡和驱动板卡,以及相关软件程序的设计与开发。

1、引言

现场总线是从20世纪80年代中期发展起来的。随着工业自动化与微处理器计算机网络的不断发展,要求有一种能在工业现场环境运行的、性能可靠、造价低廉的通信系统以形成工厂底层网络,完成现场自动化设备之间的多点数字通信,实现底层现场设备之间以及生产现场与外界的信息交换。上世纪八、九十年代以来,逐步出现多种智能执行器,本文主要完成一种基于WorldFIP现场总线技术的智能电动执行器设计。

2、电动执行器硬件整体架构及框图

一种基于总线的智能型执行器系统设计
图1WorldFIP现场总线智能执行器控制器硬件框图

整体硬件框图如图1。两条现场总线1,2互为热备份,连到通信板卡,通信板卡将总线活动转换为MCU能够理解的信息,完成总线变量、消息、事件的传递,它是WorldFIP现场总线通信协议的具体实现,它的设计也是本设计中的重点和难点。MCU是本仪表的处理核心,所有的程序、数据、算法、功能块和通信库都存储其中,用户程序使用它内置的通信库来完成与总线的数据交换,并按照总线指令驱动执行器输出,把执行器角位置经过A/D转换后送入总线,对执行器角位置的命令值和当前反馈值通过LCD进行实时显示。电源转换、电机的驱动与隔离以及角位置反馈都集成在驱动板卡上。

3、硬件电路详细设计

3.1MCU板卡与LCD设计

MCU作为整个控制器的处理核心,任务包括:通过通信板卡与WorldFIP现场总线进行通信,程序运行、数据存储与运算,信号处理,LCD显示和执行器驱动信号输出等。

基于以上,我们选用了Motorola的68HC12系列的16位单片机68HC912BC32作为本设计的MCU,它与68HC11向上兼容;内部具有32K的FLASH、768字节的EEPROM和1K的RAM,能够满足程序的存储、堆栈使用、数据存储和未来的扩容需求而无须另外扩充存储器;总线速度快,8M,4M,2M主频可选,一个时钟周期就可以完成对齐/非对齐字的读写,系统总线上干扰较少;I/O口数量充足;内置有8路10位A/D转换器;内置4路8位或2路16位PWM通道;内置SCI,SPI和看门狗;具有模糊逻辑指令;还有WAIT,STOP两种省电模式可选。LCD显示器选用了南京国显公司的HD44780点阵字符型液晶显示模块。该模块技术成熟,与MCU接口简单,减少了开发周期。68HC12与LCD的接口如图2所示。

一种基于总线的智能型执行器系统设计
图268HC12与LCD的接口图

3.2电源转换、驱动及反馈板卡的开发

本设计的电源输入DC24V,硬件采用LM2572-5.0来完成DC24V到DC5V的转换,LM2572-12来完成DC24V到DC12V的转换。LM2575系列开关稳压集成电路是美国国家半导体公司生产的集成稳压电路,它内部集成了一个固定的振荡器,只须极少外围器件便可构成一种高效的稳压电路,可大大减小散热片的体积,而在大多数情况下并不需要散热片;内部有完善的保护电路,包括电流限制及热关断电路等;芯片可提供外部控制引脚。是传统三端式稳压集成电路的理想替代产品。典型特性:振荡频率54kHz;最大稳压误差4%;转换效率75%~88%(不同电压输出的效率不同);工作温度范围-40℃~+125℃。

位置反馈模块。该模块作用是将电动机经减速器输出的角位置反馈到68HC12中,可以考虑光电编码器和霍尔传感元件,但考虑到价格因素,本设计中仍然沿用了传统的电位器反馈,阻值500欧姆,精度1%。接线比较简单。

本设计所使用的电机是天津生产制造的3100型角行程电动执行器,额定转矩250Nm,4~20mA电流驱动,采用电位器反馈。在电机驱动中采用了北京科通电子继电器总厂生产的国冠牌JGX-3F型交流固态继电器。图3所示为驱动电动机正转的应用电路图,68HC12将控制信号置为高电平,使三级管导通,固态继电器输入端加入正向压降,输出导通,电机正转。电动机反转的应用电路图与之类似。

一种基于总线的智能型执行器系统设计
图3固态继电器用于电机正转

3.3通信板卡的开发

通信板卡负责与WorldFIP现场总线的通信,是本设计的重点与难点。板卡关键元件包括通信控制器MICROFIP,线驱动器FIELDRIVE和隔离变压器FIELDTR,均由法国ALSTOM公司设计、提供。WorldFIP通信板卡的组成框图如图4。按照功能分为3大部分:通信控制器(MICROFIP),通信收发驱动器(FILEDRIVE)和隔离变压器(FILEDTR)。该板卡是总线冗余的,配备有两路完全相同的通信收发驱动器和隔离变压器。

一种基于总线的智能型执行器系统设计
图4通信板卡总体框图

4、电动执行器硬件

MCUez集成应用图形开发环境是68HC12的软件开发平台,它分为Motpad文本编辑程序,Assembler编译程序,DEBUG调试程序和Linker连接程序4部分。其中,最为重要的它的DEBUG调试程序,该程序的源代码窗口,汇编代码窗口,数据窗口,命令行窗口,寄存器窗口和内存窗口,可以对用户程序完成断点跟踪,单步调试,全速运行等多种调试功能。该工具结合串行调试接口(SDI)共同完成对MCU程序的调试工作。

整个软件的设计完全由汇编语言写成,贯彻了自顶向下和模块化的原则,主要包括主程序,中断服务程序,A/D转换子程序,LCD显示子程序,执行器驱动输出子程序和以上提到的通信库等几个部分以及辅助的写FLASH程序和写EEPROM程序。MICROFIP的变量与消息的管理都依靠中断来完成,机制简述如下:MICROFIP满足一定条件时会从它的IRQ0N管脚给出中断信号,这时MCU内部的程序跳转到中断服务程序,通过读MICROFIP内部的IRQSA寄存器,可以知道究竟是什么原因触发了中断,并给标志字节INT_FLAG置位,而主程序中在初始化后则进入死循环,在循环内反复读该标志字节,从而跳转到相应的处理程序,图5为中断处理程序流程图。

1、角反馈位置子程序。68HC12片上提供了一个8路10位的A/D转换器,由于其简单易用,可靠性高,因此本设计中,应用该A/D转换器来完成位置信号的反馈。在本设计中,ATDCTL2赋值80H,允许A/D功能。正常清除A/D转换标志,不允许中断。ATDCTL3赋值00H,选择连续转换模式,不许冻结。ATDCTL4赋值01H,分频因子为4,采样时间为2个A/D时钟。A/D转换完毕后,就可以得到当前角位置反馈,然后将该值存入数据缓冲区,供执行器驱动子程序、向总线仲裁器发送的变量写子程序和LCD显示子程序使用。

2、执行器输出驱动子程序。由于执行器的正反转输出由MCU上的两个I/O口进行控制,所以对其控制比较简单,在此不作详细叙述。值得一提的是本设计中将死区嵌入了对到达指定位置判断的子程序中,执行器正转时,反馈值不能大于指定值加1(指定值为0~100%开度),反转时,反馈值不能小于指定值减1。即死区被定为1%。

一种基于总线的智能型执行器系统设计
图5中断处理程序流程图

3、LCD显示子程序。本设计使用的LCD控制器HD44780必须进行初始化,否则模块可能无法正常显示,一般通过软件复位程序来完成其初始化。将LCD设置为8位数据接口,2行显示,5×7点阵,显示开,光标关,闪烁关,无移位。第一行地址80H,第二行地址C0H。在对LCD初始化结束后,可以对LCD进行读写操作。LCD的读写操作都是在E管脚的下降沿有效,所以读写前要确保数据准备好,先将E置高,再将其置低,完成读写操作。

4、软件的固化。软件调试完毕后需要把程序固化到MCU68HC12的FLASH中,68HC12的FLASH控制寄存器共有4个,它们是:FEELCK,FEEMCR,FEETST和FEECTL。FEELCK等于01H时将禁止FLASH,FEEMCR等于01H时将擦除和编程FLASH的启动块,FEETST主要用来进行测试,而FEECTL则具体控制FLASH的读写编程。

来源: ofweek

围观 387
订阅 RSS - 系统设计