基于嵌入式系统的新型无纸记录仪摘 要:在分析了基于8 位单片机的无纸记录仪的功能和结构的基础上,提出了一种新型的基于ATMEL 公司的32 位嵌入式系统ARM芯片AT91M55800A 的无纸记录仪的软件设计和硬件设计方案,完整地解决了基于8 位单片机的无纸记录仪无法实现的难点,而且大大增强了仪表的实时性和稳定性,并在工业控制中得到证实。
关键词:无纸记录仪;单片机;实时性
The NEW Paperless2Recorder Based on Embedded System
Abstract : The Author introduces a kind of Paperless2Recorder designing based on AT91M55800A , compared with that of based on MCS251 microcontroller. This New Paperless2Recorder not only has the basic function of ordinary Paperless - Recorder ,
but also add the function of control. The Display of color LCD makes the interface more friendly.Moreover ,the instrument has good real time. The fact proves that the design is successful.
Key words : paperless2recorder ; single chip microcomputer ; realtime
1 引 言
随着工业过程自动化的高速发展,企业对无纸记录仪提出了越来越高的要求。基于8 位单片机的无纸记录仪的功能已远远达不到用户的要求,仪表开发人员面临着重新设计无纸记录仪的软硬件结构的挑战,以满足市场对色彩丰富的LCD 显示画面、超大记录容量、增强的控制功能等等方面的需求。
开发人员一致将目光投向了嵌入式ARM 微处理核的32 位RISC 处理器,它强大的性能、丰富的接口以及优异的性价比,为无纸记录仪的发展提供了无限的空间,也是无纸记录仪发展的必然趋势。
2 基于8 位单片机的无纸记录仪结构和功能的分析
工业现场的无纸记录仪常采用MCS251 系列单片机,该系列的处理器工作频率一般不大于24MHz ,而且可扩展的资源相当有限,最大能够扩展的程序空间和内存空间都只有64KB ,很难实时完成具有一定复杂度的算法和需要大批量传送数据的彩色LCD画面的显示,因此该类无纸记录仪一般采用单色LCD 显示画面,不提供复杂的算法。
其外围电路一般包括: (1) 外部RAM,用于数据的缓存; (2) ROM,作为系统程序的存储; (3) 操作键盘,可以进行历史数据的查询和组态信息的修改,多采用查询方式读取键值; (4) 单色LCD 图形液晶,为用户提供了人机界面,但显示画面不好; (5) 实时时钟芯片,为仪表提供标准的实时时间; (6) FLASH 芯片,为历史数据的存储提供空间,但由于CPU 的寻址空间为64KB ,数据总线宽度为8 位,因此对该芯片的操作不方便,而且读写数据时间较长; (7) 电源,由于扩展的外部芯片较多,所以功耗较大; (8) 采样模块,对外部信号进行AD 转换和必要的数据处理。
3 基于嵌入式系统的无纸记录仪的外部特性该系统以嵌入式芯片AT91M55800A 为核心,并辅以大容量的FLASH存储技术、信号智能调理和高分辨率的图形液晶显示器,具有体积小、通道数多、功耗低、实时性强、精度高、运行稳定等特点。其优势在于:
(1) 采用320 ×240 点阵的高清晰度图形液晶控制器,具有丰富的图形和文字显示画面,最大程度地反应记录仪工作的现场工业信息。
(2) 采用超大容量的FLASH 存储技术,无需后备电池,断电时能够保存记录的数据,而且存储容量高达128Mbit ,最长记录时间可达30 年之久。
(3) 记录方式多样化。可分为等间隔记录和事件记录。
(4) 采样模块为万能输入模块。即在不必更换任何器件或进行任何硬件设置下,就可以实现对热电阻、热电偶、II/ III 型标准信号的采样。
(5) 丰富的软件算法。具有多种温压补偿算法,实现对各种气体的开放和线性补偿算法。
(6) 开发投入少。由于AT91M55800A 具有在线仿真单元( ICE) ,因此,只需一条并口的JTAG线,便可实现对系统的仿真、调试和程序的烧录,从而减少了购买仿真器和编程器的费用。
4 基于AT91M55800A 无纸记录仪的硬件设计AT91M55800A 是ATMEL 公司基于ARM7TDMI微处理核的32 位嵌入式RISC 处理器,具有体积小、功耗低、成本低、性能高等优点,并具备16 位与32位双指令集。芯片支持在片ICE( In - Circuit Emula2tion) 功能,可直接通过芯片上的JTAG口与PC 机通信,从而实现JTAG仿真功能和FLASH 程序存储器的烧写。AT91M55800A 具有完全可编程的EBI ( Ex2ternal Bus Interface) 接口,提供与外部存储器和外围器件的扩展接口,配置极为方便。具有8 级优先级的中断,中断源极为丰富, PDC( Peripheral Data Con2troller) 功能使得串行口在大块数据传送时,不需要处理器的干预, 从而保证了系统的实时性。AT91M55800A 提供30MIPS 的处理能力,这使得它相对于8 位MCS251 系列处理器在速度上有很大的
优势。58 根可编程的IO 引脚提供丰富IO 资源。另外,AT91M55800A 还具有SPI 接口、8 路10 位的AD转换器、2 路10 位的DA 转换器、RTC 功能、WDT 功能和高级电源管理功能(APMC) 。利用AT91M55800A 丰富的接口资源和灵活的扩展功能,设计出如图1 所示的硬件结构框图。4. 1 AT91M55800A与外部存储器的接口无纸记录仪的外部存储器包括:用于数据缓存的外部SRAM、存放程序的ROM、存放实时数据的外部FLASH 以及保存组态信息的非易失性NvRAM。其与AT91M55800A 的接口电路基本相同,而且CPU芯片具有8 个片选线和24 位地址线,每片最大寻址可达16M,因此外部扩展空间可达128M,可以满足系统外围器件的要求。图2 描述了AT91M55800 与外部SRAM的接口。图2 AT91M55800A与SRAM的接口由于程序仿真时需要下载到外部SRAM 运行,以及该芯片对外部芯片速度的要求, 所以选用UTRON 公司高速16 位数据总线的静态大容量SRAM:UT61L25616 ,其读取速度达10ns ,完全满足此高速CPU 的要求,而且存储空间为512KB ,也可以满足程序仿真的要求。程序存储器选用ATMEL 公司的FLASH:AT29LV1024 ,存储容量为128KB。当系统上电后,CPU 从与NCS0 相连的存储器开始执行指令,因此程序FLASH 的片选线必须与NCS0 相接。存放数据的FLASH选用Intel 公司的28F640j3 ,存取空间为64Mbit ,其存取速度为120ns ,通过配置EBI的等待周期为5 ,就可以实现CPU 与它的时序匹配。存放无纸记录仪的通道组态信息,选用非易失性RAM:HK1225 ,其容量为8KB ,同样通过配置EBI 的等待周期,就可以实现CPU 和它的时序匹配。
4. 2 AT91M55800A与LCD 接口选用16 色的彩色图形液晶,其点阵为320 ×240 ,考虑到LCD 控制器的工作电压为5V ,而主CPU的工作电压为3. 3V ,因此采用74HCT164245 对数据总线进行电平转换。LCD 控制器与主CPU 的接口包括8 位数据总线和WR、RD、A0、CS、RST等控制线,为了与LCD 控制器的总线存取速度匹配,需要设定EBI 的等待周期为5 ,硬件接口如图3 所示。液晶的操作主要包括写命令和写数据两个函数,下面是这两个函数的源代码,其中0x04000000是LCD 控制器缓冲区地址空间的首地址。
# define LCDCOM ( (uchar 3 ) 0x04000000 )
# define LCDDATA ( (uchar 3 ) 0x04000001 )
/ / 写命令函数
void wcom(uchar com)
{
uchar 3 p - lcdc ,temp ;
p - lcdc =LCDCOM;
temp = com;
3 p - lcdc = temp ;
}
/ / 写数据函数
void wdata (uchar dat)
{ uchar 3 p - lcdd ,temp ;
p - lcdd =LCDDATA ;
temp = dat ;
3 p - lcdd = temp ;
}
4. 3 AT91M55800A与键盘接口
由于用户对无纸记录仪的操作比较简单,键盘设置了5 个键,分别为左键、右键、上键、下键和确任键,与AT91M55800A 的PA 口直接相接,接口电路,如图4 所示。主CPU 通过定时扫描PA 口来读取键值,为了消除按键抖动造成的键值错判,不仅开启了PA 口的滤波功能,而且在软件上采取延时判别来保证键值的准确性。图4 键盘与AT91M55800 的接口电路记录仪的许多参数需要用户通过键盘操作来设置,为了加快用户对参数的设置,软件设计上进行了加速处理,键被按下的时间越长,单位时间内参数变化量就越大。因此如果需要设置的参数比较大,用户可以首先按下键不松,使参数值迅速接近设定值,然后再小步距调整。
4. 4 与采样模块的通信
信号的采样和调理功能集成在一个采样模块上,主CPU 通过与采样模块通信来读取信号采样值以及对采样模块进行设置,这样不仅降低了硬件设计的复杂度,而且使得采样通道配置十分灵活。同时在串行通信中使用了PDC 功能,只需告诉CPU 数据包的首地址和长度,就可以在不需CPU 的干预下实现数据的通信,从而增强了整个仪表的实时性,接口如图5 所示。
4. 5 实时时钟( RTC)
AT91M55800A 具有片上实时时钟,通过专用的32. 768kHz 晶振电路和外接电池,使得系统在断电的情况下,仍然保持准确的实时时间,这样就为记录仪的数据记录提供了精确的时间基准,保证了记录的准确性和数据处理的可靠性。同时省去了外部时钟芯片,减小了PCB 板的面积,降低了成本。
4. 6 仪表安全性设计
为了保证记录数据的正确性和完整性,以及整个仪表运行的可靠性,采用MAX706 实现对电源的监控、硬件WDT和系统的复位功能。通过调节电源的监控电压, 使系统电压在低于2. 7V 时进入AT91M55800 的快中断(Fast Interrupt) ,迅速对重要数据进行保护。其次,AT91M558000 具有自带的WDT功能,在程序初始化时将WDT 初始化,主循环中不断清除WDT的溢出寄存器,从而在软件和硬件上双重保证了整个仪表运行的可靠性。
5 基于AT91M55800A 的无纸记录仪的软件设计
5. 1 引导程序与MCS251 系列单片机不同的是,AT91M55800A上电后要先执行一段BOOT 程序,用于对各个外部接口进行配置。AT91M55800A 上电时的工作频率为32. 768kHz ,即实时时钟作为系统的工作时钟。为此,在BOOT 程序中,首先应开启系统主振,然后根据需要是否进行倍频,最后将系统工作时钟切换到主时钟上使ARM核到达正常工作频率。接着,完成初始化EBI ,存储中断向量到内部的RAM,初始化变量和分配系统堆栈。最后,通过跳转指令转向主程序。由于BOOT 程序要对AT91M55800 中的寄存器操作以及分配堆栈,这样很难用C 语言直接操作,因此BOOT 程序一般用汇编语言编写。
5. 2 主程序
主程序用C 语言编写,使得程序有较强的可读性和可移植性。程序结构上按功能模块编写,大致分为以下几个模块: (1) 系统的自检,每次上电时对仪表的所有芯片进行测试,保证仪表的正常工作。(2) 系统初始化,主要完成对串口、定时器、IO 口、键盘以及液晶的初始化。(3) 通信处理,与采样模块通信,实现对各个采样通道的数据采集并对相应的输出通道发送控制信号。(4) 数据处理,由于从采样通道获取的采样数据是AD 采样的数值,并非工程值,因此还要对通信处理后的数据进行工程量化和算法处理。(5) 键盘处理,实现菜单操作,界面切换以及参数设置。(6) 液晶显示程序,将采样通道的数据实时显示在LCD 屏上。(7) 数据存储,将数据处理后的各个通道的数据存储到超大容量flash 中。整个程序的流程图,如图6 所示。
图6 主程序流程图
6 结束语
基于AT91M55800A 的无纸记录仪已经研制成功,并且已经在工业现场使用,证明了其硬件设计和软件设计的合理性和正确性。相信随着嵌入式系统的发展和嵌入式ARM 芯片在工业现场仪表上的不断应用,功能更加强大的新型工业智能仪表将层出不穷。
参考文献:
[1 ] Atmel Corporation. AT91 ARM THUMB Microcontroller
AT91M55800A , 2002.
[2 ] 马忠梅,徐英慧,等. ARM 嵌入式处理器结构与应用处
理[M] . 北京:北京航空航天大学出版社, 2002.
[3 ] 谭浩强. C 程序设计(第二版) [M] . 北京:清华大学出
版社,1999.
[4 ] Arm Corporation Arm Software Development Toolkit (version
2. 5) User Guide , 1997. (责任编辑:admin) |