LPC2132在嵌入式系统中的应用技术

发布者:zuiquan最新更新时间:2012-05-21 来源: 微计算机信息 关键字:嵌入式系统  LPC2132  LCM显示 手机看文章 扫描二维码
随时随地手机看文章

1. 引言

SoC在医疗器械中应用前景广阔[1],LPC2131/2132/2138是基于一个支持实时仿真和嵌入式跟踪的32/16位ARM7TDMI-STM CPU的微控制器,带有32kB/64kB/512 kB的嵌入的高速Flash存储器和8/16/32kB片内静态RAM。多达47个5V的通用I/O口,1个(LPC2132/2132)或2个(LPC2138)8路10位A/D转换器共包含16个模拟输入,1个10位D/A转换器,可提供不同的模拟输出(LPC2132/2138)。多个串行接口,包括2个16C550工业标准UART、2个高速I2C接口(400kbit/s)、SPITM 和SSP。内部集成实时时钟等,资源比较丰富,使它们特别适用于工业控制和医疗等嵌入式系统。本文以LPC2132为例,介绍LPC2132的设计经验与设计技术。

2. 显示设计

显示设计是所有嵌入式系统的重要组成部分之一。显示器件包括LED、字符LCM、图形LCM、VFD等,其中图形LCM(如128x64、 192x64等点阵)可显示ASCII字符、汉字和图形,且性价比较高,在嵌入式系统中的应用日趋广泛,虽在MCS-51系列中的设计已非常成熟。但由于 ARM与MCS-51有许多不同之处,其设计方法当然也有差别,下面以LPC2132和192x64点阵LCM为例进行说明。

2.1 与液晶显示模块(LCM)的硬件接口设计

1)  电平匹配:LPC2132系列操作电压范围:3.0~3.6 V,选择3V的LCM当然没有问题,但市场上3V的LCM价格常常比5V贵,而LPC2132的I/O口可承受5V的最大电压,所以可采用5V的LCM,但需在LCM与LPC2132相连的I/O口上接5V上拉电阻。

2)  I/O连接:LPC2132没有外部总线,所有I/O口都需要进行配置,由内部寄存器决定是输入还是输出。其中P0口共有31个I/O口,P1口有16个 I/O口,而且I/O口的编号不连续(如P0.28与P1.25相邻),由于编程时对I/O口采用位操作,所以具体连接时,可根据硬件电路板布线需求进行连接。为提高显示刷新速度,需检测LCM内部的忙标志,每次向LCM写数据前,先读取LCM的状态,当状态为非忙时才能写入显示数据,这样,要注意动态设置与LCM数据线相连的LPC2132的I/O口方向,而且8个数据位要用IOSET和IOCLR逐一控制。

3)  液晶背光控制:由于液晶的背光电流需要100多毫安,电压一般在5V左右,而LPC2132的I/O口驱动能力较弱,采用图1的驱动电路,LPC2132能可靠控制背光LED的亮与灭,且对系统无干扰。

图1液晶背光控制电路

2.2 液晶显示的软件设计

LPC2132可采用CodeWarrior进行软件开发,由于用C语言进行编程,开发速度比较快。在编写LCM程序时,先编写硬件驱动程序,包括 LCM初始化函数,写LCM数据函数,写LCM命令函数,读LCM数据函数,读LCM命令函数,在这些函数的基础上,编写显示16x16点阵汉字的函数,设置显示位置函数等,鉴于篇幅限制,就不在此赘述,下面重点向读者介绍如何显示汉字的技巧和提高液晶显示刷新速度。

在显示汉字信息时,需要先用工具软件提取待显示汉字的点阵,并将这些点阵信息保存在程序中,如果单纯采用C语言,则只能定义数组变量,然后在显示时调用所定义的数组变量。但采用这种方法有以下缺点。1)采用数组变量定义字符点阵,将浪费宝贵的RAM资源。2)当显示内容丰富,需定义的大量的点阵数据时,造成RAM容量不足。如果采用汇编语言文件与C语言文件混合编程,将字符点阵信息以程序代码的形式保存,不占用RAM,则可克服上述问题。下面以显示汉字“上海”(16x16点阵)为例,介绍具体方法:

1) 点阵信息的定义。

建立一个以s为扩展名的汇编语言文件,文件内容具体如下。

EXPORT shang16x16 

EXPORT hai16x16

AREA    TTTT,CODE,READONLY

ENTRY;

shang16x16

 DCB 0,0,0,0,0,0,255,32

DCB 32,32,32,48,32,0,0,0

 DCB 6,16,16,16,16,16,31,16

DCB 16,16,16,16,24,16,0,0

hai16x16

 DCB 16,33,198,144,136,247,148,180

DCB 212,148,148,246,132,128,0,0

DCB 2,62,1,0,12,11,8,9

DCB 10,40,56,15,8,0,0,0

    END

上面的文件中定义了“上海”的汉字点阵信息,将此文件添加到项目文件中,编译后点阵信息以程序代码的方式存储在FLASH中。

2) 点阵信息的申明。

建立一个以h为扩展名的头文件,对汇编语言文件中定义的字符点阵信息进行申明,以便项目中其他程序可使用定义的点阵信息,例如lattice.h,文件具体内容如下:

extern unsigned char shang16x16[];

extern unsigned char hai16x16[];[page]

3) 点阵信息的引用。

将此头文件插入到其他文件中。例如:假设函数void WR_LCM16x16(unsigned char x_row,unsigned char y_col,unsigned char  *p_matrix)的功能是在x_row行,y_col列位置开始显示p_matrix所指向的字符点阵。则 WR_LCM16x16(2,0,shang16x16)和WR_LCM16x16(2,16,hai16x16)就可显示“上海”。

液晶显示刷新速度是液晶应用的关键技术,笔者摸索如下的方法,可大大提高显示刷新速度。

1)充分利用LCM的判忙标志位,减小读写间隔。如192x64等液晶显示模块,其接口中含有判忙标志位。如果只是简单在两次读写间隔插入一定的延迟,则会使等待时间加长,刷新变慢。

2)信息分类,减少重复刷新。可将整个屏幕分成空白区、显示固定信息区、显示动态信息区。如参数名称、单位等可划归固定信息,而实时数据则归为动态信息。只有在第一次进入某个画面时,刷新固定信息区,其余时刻,只刷新动态信息区。

3)建立数据更新标记,进一步减小动态信息刷新工作量。在内存中为每个动态信息建立一显示缓冲区,只有那些动态信息发生改变的项,才需要刷新。

综合应用上述方法,可大大提高显示刷新速度。

3.系统参数掉电保存技术

由于LPC2132片内没有EEPROM,当系统掉电后,所有参数都将丢失,如果所需要保存的参数比较多,就只有给系统扩展类似2402等 EEPROM芯片,但如果需保存的数据较少(比如小于10字节),则可考虑利用系统的实时时钟寄存器资源,而不必扩展EEPROM,以降低产品成本,下面进行具体介绍。

LPC3123的实时时钟有独立的电源电路,专用电源管脚可与电池或3.3V的电压相连,在产品设计中,一般用电池供电,以维持时钟不间断运行。 LPC2132中有完整的时间寄存器。但在设计过程中,并非需要所有的寄存器,比如,年、月、日、时、分、秒、星期等报警寄存器中,就有些在设计时没有被使用,只要在设置报警屏蔽寄存器时将不用的报警寄存器屏蔽,对应报警寄存器的数据对报警就没有影响,则可将这些寄存器用于保存数据,只要维持时钟供电,这些数据就不会丢失。

LPC2132有2个高速I2C接口,当需要存储的数据量教大时,可在I2C接口上连接24xx系列EEPROM芯片,使用前,先对相关引脚进行配置,使其具有I2C总线功能,另外,当采用I2C中断时,还要将对应的中断打开,使用比较方便。但在使用I2C时要注意,连续2次I2C总线读或写,要有必要的时间间隔,即必须等前次总线结束时,才能重新启动总线,否则会出错。

4.其它应用技术

在进行硬件设计时要注意:LPC2132的I/O口的灌入电流大于驱动电流,在驱动LED时可考虑采用灌入电流(I/O口输出低电平时LED亮)技术,如果采用此法依然不能满足要求,则可用多个I/O口并联或加驱动电路。

LPC2132内部8路10位A/D转换器,但在使用时,要给I/O口加稳压二极管保护,防止输入的模拟量超限而损坏芯片。

在进行软件设计时要注意:尽量使用位操作指令IOSET和IOCLR控制LPC2132的I/O口,而不要直接操作I/O口寄存器(如IO0PIN或IO1PIN),否则会出现不可预料的结果。

在调试时要注意:LPC2132支持JTAG调试,但因JTAG使用了系统的定时器T0,所以当用户用JTAG进行软件调试时,不能使用定时器T0,否则会出错。

5.应用实例

笔者以LPC2132为核心,设计了生物安全控制柜的控制器,生物安全控制柜是医疗消毒仪器,医疗器械放进安全控制柜,利用紫外线进行杀菌消毒,当消毒完毕,为防止柜内没有被紫外线照射杀死的病毒漂浮出来,要求当柜门打开时,启动送风机和排风机,送风机从室外补充新风,经过滤器后送进安全控制柜。排风机将内部有菌空气经过滤器过滤后排出到室外。并保证安全控制柜内维持一定的负压。

安全控制柜有两种工作模式:操作模式和消毒模式。在操作模式下,允许进行开门、关门动作,允许对照明灯和外接电源插座的控制,但禁止开启紫外灯,而且只要门打开,就自动启动送风机和排风机,只要门关闭,则送风机和排风机立即自动停止;在消毒模式下,只允许对紫外灯开关动作、照明灯和外接电源插座的控制,而禁止开门和启动风机动作。

系统要求实时显示消毒进度,送、排风机的风速,过滤器差压数值,当出现送风风速大于排风风速、消毒时前门开启、过滤器实效等故障时,则进行报警。另外,还需显示当前时钟等。

系统还设有风机、紫外灯、照明、插座、门开、门关、UP、DOWN、LEFT、RIGHT、ENTER按键,用来控制相应的操作和参数设置等。图2为生物安全控制柜的结构框图。

图2 生物安全控制柜结构框图电路

从图2可以看出,整个系统仅需少量的外围电路和驱动电路,性能价格比较高。具体实现方法:采用HONYWELL的24PC系列压力传感器测量控制内部压力,经放大电路放大后送LPC2132的内部A/D转换模块,实现A/D转换,根据检测的压力数据,计算风机的风速及内部压力状态,并执行相应的动作。显示采用192x64图形LCM,显示信息量大。全中文界面,用户操作十分方便。

6. 结束语

本文作者创新点为设计了LPC2132与液晶的硬件接口电路;提出了汇编语言与C语言混合编程方法;摸索出提高液晶显示刷新速度的设计技术;介绍了LCP2132系统中的参数保存技术和其他应用技术;并将这些技术成功地应用到具体产品设计中。

参考文献

[1] 李浩,马文丽等.基于SoC芯片的嵌入式医学检测设备平台设计,微计算机信息,2005 年第7-2 期:第63-64页

[2]  LPC2131/2132/2138使用指南,http://www.zlgmcu.com

[3]  李维堤,郭强. 液晶显示技术[M]. 北京:电子工业出版社,2000

关键字:嵌入式系统  LPC2132  LCM显示 引用地址:LPC2132在嵌入式系统中的应用技术

上一篇:基于AC48304的嵌入式多路语音记录器
下一篇:Linux 下基于ARM920T 的USB 摄像头图像采集

推荐阅读最新更新时间:2024-03-16 12:59

ARM+Linux嵌入式系统的BootLoader设计
由Boot Loader和固化在固件(firmware)中的Boot代码(可选)共同组成一个嵌入式系统的引导加载程序。它的作用和功能就像固化到计算机内主板上的一个ROM芯片程序BIOS(basIC input output system)。但是它一般不配置像BIOS那样的固件程序,这是因为要考虑经济方面的原因,因此必须自己完成这方面的工作。Boot Loader可以初始化硬件设备,建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。它的实现严重地依赖于硬件,特别是在嵌入式系统中,即使基于同一个CPU的Boot Loader,对于不同的板子,也有很大的不同。   1
[单片机]
ARM+Linux<font color='red'>嵌入式系统</font>的BootLoader设计
物联网嵌入式系统居安思危
有人担心物联网引申新一轮资料外泄风暴,新增的设备并不是传统个人计算机或智能装置般具有一定防护功能,可能意味着为攻击者提供更多潜在切入点来入侵企业。很多这些设备都属于嵌入式系统范畴,该领域的专家担心,从嵌入式技术令人担忧的历史来看,这种技术可能给企业带来最严重的安全风险。 物联网令Stuxnet恶梦随时翻生 传统嵌入式设备包含很小的芯片组,并通常有「精简版」的Linux操作系统。日常见的嵌入式设备例子有USB闪储记忆装置,而令伊朗核电厂受感染的Stuxnet正是利用USB记忆装置潜入内部系统。其他诸如联网打印机,甚至还有现在的硬盘驱动器固件与Equation间谍软件就有密切关系。 物联网的出现让该类别的设备正迅速增加
[网络通信]
赛普拉斯低引脚数HyperRAM™存储器简化嵌入式系统的设计
美国加利福尼亚州圣何塞,2016年7月6日 嵌入式系统解决方案领域的领导者赛普拉斯半导体公司(纳斯达克股票交易代码:CY)今日宣布其基于低引脚数HyperBus 接口的全新高速自刷新动态RAM(DRAM)现开始提供样片。该款64Mb HyperRAM 可用作汽车、工业和消费等各类应用的外置便笺式存储器,用于渲染高分辨率图形或运行数据密集型固件算法。该器件 拥有高达333 MBps的读写带宽,并支持3V和1.8V供电电压。 与赛普拉斯的HyperFlash NOR闪存配合使用时,HyperRAM可通过让闪存和RAM共享同一个12引脚HyperBus,为嵌入式系统提供一个简约、经济高效的解决方案。配备SDRAM和Dual-Q
[嵌入式]
赛普拉斯低引脚数HyperRAM™存储器简化<font color='red'>嵌入式系统</font>的设计
USB无线网络适配器在嵌入式系统中的应用
  引言   WLAN技术和嵌入式技术是目前比较热门的两个研究方向,而将二者相结合,即具有无线接入功能的嵌入式系统更具有诱人的发展前景。本文介绍了将IEEE802.11b无线网络适配器与嵌入式主机通过USB总线进行连接的系统设计与实现。系统采用了先进的ARM处理器,除具有10M/100M以太网接口外,还提供USB主接口方便连接具有USB接口的IEEE 802.11b无线网络适配器。   1.系统的总体实现   1.1系统的构成   系统 CPU采用Samsung公司推出的带有ARM7TDMI内核的S3C4510B作为CPU,RAM采用8M 32位SDRAM,ROM采用4M 16 位FLASH。带有一个JTAG接口用于系统调
[单片机]
USB无线网络适配器在<font color='red'>嵌入式系统</font>中的应用
一种通用的嵌入式系统ISP方法
摘要:针对没有集成ISP功能的MCU系统,提出了一种通用的嵌入式系统Flash在线编程(ISP)方案。该方案借用RAM作为ISP的程序存储器,可降低系统成本并具有较大的灵活性。以MC68332平台为例,详细介绍了这种ISP方案的具体实现过程。 关键词:嵌入式系统 Flash ISP MC68332 随着嵌入式系统技术的发展,电可擦除的Flash芯片以容量大、价格低、编程方便等优势得到了广泛的应用。由于同一片Flash作业程序存储器的系统无法直接实现在系统编程(ISP)。为了方便现场调试和程序升级,可以采用集成ISP功能较新的MCU(如AVR、部分ARM芯片等),或者采用双Flash设计等方法实现ISP功能。但有不少系统仍然使用
[应用]
嵌入式与边界设备提供了测试机会
  有两类应用提出了设计与测试挑战,虽然它们并不要求最高的带宽、数据速率和存储器深度。据Agilent技术公司元件测试部副总裁兼总经理Greg Peters称,这些应用包括 嵌入式系统 与边界设备,后一类包括了与真实世界接触的设备,从 传感器 到手机等,而不是关在屋里的服务器。Peters在今年5月25日的国际微波研讨会(IMS)上说,他预计这类设备的数量会大幅增长。   4月份在硅谷召开的嵌入系统大会(ESC)为测试公司提供了一个展示面向嵌入式系统市场产品的机会。Tektronix公司高调宣传了它的混合信号示波器,并演示了它赞助的一个时间与运动研究结果;研究表明,调试设计的工程师们在搜索欠幅脉冲(Runt)和毛刺时,使用Te
[测试测量]
嵌入式与边界设备提供了测试机会
收集完这几大技巧,入门开发高可靠性嵌入式系统
当一个应用程序被确认为 成功 的那一刻,通常会有一种如释重负的感觉,但仅仅因为软件在受控条件下的那一刻运行正常并不意味着明天或一年后还会运行正常。 从规范完善的开发周期到严格执行和系统检查,开发高可靠性 嵌入式 系统的技术有许多种。本文介绍了7个易操作且可以长久使用的技巧,它们对于确保系统更加可靠地运行并捕获异常行为大有帮助。 技巧#1 用已知值填充ROM 软件开发人员往往都是非常乐观的一群人,只要让他们的代码忠实地长时间地运行就可以了,仅此而已。微控制器跳出应用程序空间并在非预想的代码空间中执行这种情况似乎是相当少有的。然而,这种情况发生的机会并不比缓存溢出或错误指针失去引用少。它确实会发生!发生这种情况后的系统行为将是不
[嵌入式]
嵌入式系统中实现对U盘的操作
摘要:主要介绍在嵌入式系统中利用SL811HS对U盘操作的实现方法;简要介绍USB设备中的海量存储类、SL811HS的芯片特点及FAT文件系统。 关键词:USB U盘 FAT SL811HS 引 言   USB(通用串行总线)用于将适用USB的外围设备(device)连接到主机(host),实现二者之间数据传输的外部总线结构;是一种快速、灵活的总线接口。它最大的特点是易于使用,主要是用在中速和低速的外设。   随着USB规范的完善和成熟,USB外设的种类不断丰富,应用领域也不断扩大。在传统的应用中,主要是PC扮演着主机的角色。根据USB的规范,可以看到在USB的拓朴结构中居于核心地位的是主机,每一次的数据传输都必须由主机发起
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多每日新闻
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved