LPc旅游手册(共7篇)
LPc旅游手册 篇1
摘要:文章通过对国内嵌入式系统岗位的技能进行分析,针对国内院校嵌入式系统课程的教学内容、实验实训开设的现状,根据企业对嵌入式岗位招聘需求,提出了基于元件技术手册的嵌入式驱动开发的新思路。以LPC21 06驱动LCD1 602液晶的项目,探索了基于元件技术手册来进行新产品开发的培训新思路,提出了基于元件技术手册进行产品研发的新方法,对拓展国内外嵌入式系统教学提供了新的课程培训思路。
关键词:嵌入式,驱动开发,LCD1602,LPC2106
1 嵌入式系统岗位分析
随着我国信息化与工业化融合的推进,嵌入式技术的广泛应用已成为必然趋势[1]。企业不仅对嵌入式系统人才需求的数量在增加,对嵌入式系统人才的技能要求也在不断地提高。从事嵌入式产品的相关研发,离不开硬件层、中间层、软件层、功能层4个层次的研发工作[2]。它的开发流程都必须先定义产品功能,再对定义进行系统分割,然后进行软硬件的规划和设计,按照岗位职能可进一步细分如下。
软件研发分为系统构建工程师、上层驱动开发工程师、上层应用程序开发工程师。
硬件研发分为电路原理图设计工程师、PCB设计工程师、底层驱动开发工程师。
软件研发的3类工程师按照操作系统的种类又分出与各种操作系统相对应的工程师。目前,在各领域应用的主流操作系统有UCOS-Ⅱ、LINUX、WINCE、VX-WORKS等。企业一般会按照不同的操作系统平台招聘相应的工程师。
2 当前嵌入式系统培训的不足
目前,国内高校开设嵌入式系统课程的高校、培训机构较少,嵌入系统课程的教学内容、实验实训的开设还处在探索的阶段[3]。通过对毕业学生、学员的回访和到企业的调研发现,由于在学习时学员对元件的手册没有全面地练习,对设备、元件的相关代码都是通过修改(教师提供或网上下载)而得到的,因此当采用新元件时,学员对新元件的驱动编写无从下手。
3 嵌入式系统培训改进的基本思想
(1)要让学员学习如何查看厂家提供的技术手册并根据元器件技术手册来进行设计。
(2)培训项目元件的选取要有一定的复杂性,但最好选取学员不太陌生的元器件。
(3)为了使学员能更深刻地理解驱动程序的代码是如何与元件的硬件电路相对应的,驱动程序的代码编写先不采用操作系统。
4 项目设计
根据项目设置的基本思想,设置一个嵌入式驱动液晶显示的电路并完成相关驱动代码的编写。
液晶采用LCD1602,嵌入式CPU采用LPC2106,驱动项目编写软件采用ADS1.2,为了验证驱动代码运行的结果是否正确,采用Proteus软件完成电路设计,并通过Proteus电路仿真来验证[4]驱动代码在液晶电路的运行况。
项目主要通过LCD1602的显示程序来学习如何根据LCD1602厂家的技术手册编写驱动程序代码。
液晶LCD1602的主要技术参数如下。
1602字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,可以显示2行,每行显示16个ASCII字符,并且可以自定义图形,只需要写入相对应字符的ASCII码就可以显[5](见表1)。
根据液晶接口信号引脚说明,完成液晶和CPU的电路连接(如图1所示)。
根据电路的连接,在程序中完成管脚的定义:
#define rs (1<<8)
#define rw (1<<9)
#define en (1<<10)
#define busy (1<<7)
根据手册管脚的接口信号说明,确定和液晶相连接的LPC2106的引脚为输入输出IO口,同时将与液晶连接的CPU引脚定义为输出IO口的类型:
PINSEL0=0×00000000;//设置所有引脚连接GPIO
PINSEL1=0×00000000;
IO0DIR=0×7ff;//设置P0.0—P0.1 0为输出IO口
1602液晶的D0~D7端为8位数据口,进行数据传送,而RS、R/W、E端则配合可以做出不同的操作[5],对1602进行操作主要有4种,如下:①读状态,输入:RS=L,RW=H,E=H。输出:D0~D7=状态字。②写指令,输入:RS=L,RW=L,D0~D7=指令,E=高脉冲。输出:无。③读数据,输入:RS=H,RW=H,E=H。输出:D0~D7=数据。④写数据,输入:RS=H,RW=L,D0~D7=数据,E=高脉冲。输出:无。
在进行读操作的时候,RW置于1,RS则根据读的内容(状态或数据)置为1或0,E置为1,可以在数据口读到正确的数据,在将E置为1之后,就可以紧跟着指令去读取数据,在读到数据后,再将E置为0。
在进行写操作的时候,RW要置为0,RS根据写的内容不同(指令或数据)置为1或0,同时在将E置为1之前,要先将数据送到数据口上,然后将E置为1,经过一定的延时后,再将E置为0,在这个时间段内必须保证数据口上的数据稳定不变,且为有效的数据。
从上文可以看出,如果想对1602进行何种操作,只要按其相对应的操作规程来做即可。
虽然以上有4种操作,但实际上归类起来只有2种,一种读一种写,并且进行读或写都要进行数据的传送。
液晶状态字说明如图2所示。
用CPU来控制LCD模块的方式十分简单,LCD模块的内部可以看成2组寄存器,一个为指令寄存器,另一个为数据寄存器,由RS引脚来控制。所有对指令寄存器或数据寄存器的存取均需检查LCD内部的忙碌标志STA7,此标志用来告知LCD内部正在工作,并不允许接收任何的控制命令。而此位的检查可以令RS=0,用读取D7来加以判断。当D7为0时,才可以写入指令或数据寄存器。因此,在对控制器每次进行读写操作之前,都必须进行读写检测,确保STA7为0。
根据手册的要求,编写、读写检测函数:
代码说明:
根据读状态,输入RS=L,RW=H,E=H;输出D0~D7状态字的定义。为了能读出D7的状态,要使RS=L,RW=H,E=H,因此定义IOODIR=0×700,使P0.8-P0.10为输出IO口,而P0.0-P0.7输入IO口。
忙检测完成后,需要对LCD1602输入指令和数据,因此定义IO0DIR=0×7ff,将P0.0-P0.10全部定义为输出IO口。
在对液晶进行忙检测后,就可以对液晶进行读写操作。写操作分为写指令与写数据2种操作,写指令是定义对液晶进行何种操作,写数据是将数据传递给1602液晶。对液晶进行写操作一般是先执行写操作,然后再写数据。写指令与写数据相对应的函数如下:
LCD1602手册中液晶初始化的要求如图3所示。
在使用1602之前,必须对其进行初始化操作,初始化过程是往1602固定写入一定的指令,里面包括指定使用模式、清屏等[5]。LPC2106晶振为11.0592 MHz,为了能准确地延时,可能通过调用延时函数完成延时。
在1602上,分为二行,每行有16个字符位置,如何在我们需要的位置上显示出对应的字符呢?可由RAM地址映射图及数据指针设置,确定液晶显示的位置(如图4所示)。
要显示字符时先输入显示字符地址,也就是告诉模块在哪里显示字符:比如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1,所以实际写入的数据应该是01000000B (40H)+10000000B (80H)=11000000B (C0H)
图5是1602显示RAM缓冲区对应的地址,要在对应的位置显示出字符,首先要写入一个设置数据地址的指令码(80H+地址),然后紧跟着写入要显示的数据即可。
写指令:WrOp (0x80+地址,0)
写数据:WrDat (字符ASCII码,1)
比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。
最后完成主函数的编写使用:
代码说明:WrO-(Oxc1)写指令函数定义字符在液晶中显示的地址为第二行第一个字符,WrDat('a')将要显示的字符a传递至液晶显示。
完成程序的编译后将生成的.he×文件下载到proteus电路中完成仿真,液晶在第二行第一列正常显示出字符a。
5 项目的扩展
在完成了嵌入式液晶驱动代码的实验后,还可以引导学员对该项目进行扩展。
(1)如何在液晶中显示字符串?
为了能够显示字符串,可编写字符串显示函数:
(2)引导学员修改程序:如何让液晶上显示的字符动态移动显示?
(3)如何将ARM中LCD1602液晶的显示代码移植到其他的CPU中(以移植到8051为例),让学员感受到C语言作为高级语言的优势。
(4)在项目中,针对元件技术手册引导学员进行其他课程的实验:如由元件外形尺寸,引导学生在设计PCB时根据手册上的元件外形尺寸设计LCD1602的元件PCB封装。
6 结论
本文通过对国内嵌入式系统岗位的分析,针对国内嵌入式系统教学、培训的情况,通过LPC2106驱动LCD1602液晶的项目,系统地展现了基于元件技术手册进产品研发的方法,探索了基于元件技术手册来进行新产品开发的培训新思路,对拓展国内外嵌入式系统教学提供了新的课程培训思路。
参考文献
[1]黄福莹,黎相成,何华光.嵌入式技术课程的教学探讨[J].广西大学学报(哲学社会科学版),2007,29(5):77-78.
[2]潘晓宁.高职高专院校嵌入式系统课程教学方法的探讨[J].职业教育研究,2007(8):24-25.
[3]张其亮,韩斌“嵌入式系统“课程的实验教学研究[J].实验室研究与探索,2009,28(6):132-133.
[4]倪蕴涛.基于嵌入式系统实验课程教学方法改革和教学思路探索的研究[J].牡丹江教育学院学报,2007(4):130-131.
[5]赵亮.液晶显示模块LCD1602应用[J].电子制作,2007(3):58-59.
lpc2294启动代码分析 篇2
基于ARM的芯片多数为复杂的片上系统集成 (SOC) , 这种复杂的系统里多数的硬件模块都是可配置的, 需要由软件来设置需要的工作状态。因此, 在用户的应用程序启动之前, 需要有专门的一段启动代码来完成对系统的初始化。启动代码是芯片复位后进入C语言的main () 函数前执行的一段代码, 它主要为运行C语言程序提供基本的运行环境。要针对每种硬件的情况, 写出相应的启动程序。启动代码一般用汇编语言来编写, 它主要对关键设备进行初始化和配置, 为应用程序的运行创造条件。
1 启动代码简介
在32位的ARM芯片的程序开发中, 大多采用C语言编程, 在运行C程序之前, 要对系统进行初始化, 就像是PC机的BIOS一样, 这部分的初始化就是启动代码。因为ARM公司只做ARM的内核, 其他公司在获得ARM的内核后自行生产自己的SOC (System On Chip) 芯片, 所以不同厂家生产的芯片, 启动代码也不尽相同, 启动代码一般与具体的目标系统和开发系统有关, 随其变化而变化, 但通常包括以下几部分:异常向量表的定义、堆栈初始化、系统硬件初始化、C程序运行环境初始化, 最后跳转到用户C语言主程序。
2 中断向量表与重映射
ARM中断向量表必须放置在从0地址开始的连续32字节的空间内, 每当有中断向量或者异常发生的时候, PC就会跳转到从0到20H之间相应的地址去取程序代码执行。中断向量表如表1所示。
中断向量表中, 0X00-0X1C的这段程序只存放每个中断的入口, 程序从这个入口跳转到各自的内存去处理异常。程序如下:
使用LDR指令而不使用B指令跳转的原因有两个:LDR指令可以全地址范围跳转, 而B指令不行;芯片具有RAMAP功能, 当向量表位于FLASH中时, 用B指令不能跳转到正确的位置。
重映射与处理器的异常处理机制密切相关, 一般是在系统初始化过程中完成的。ARM体系结构中, 系统上电或复位后, 处理器将从地址0X0处取第一条指令, 因此, 上电的时候, 地址0X0处必须是非易失性的ROM或flash。由于处理器对片内RAM的访问速度最快, 为了加快中断的响应速度, 片内RAM成为存放异常向量表的首选位置, 这就用到了RAM重新映射机制。整个重映射的过程非常简单, 首先将异常向量从非易失性存储器中拷贝到片内RAM中, 然后执行重映射命令, 将位于片内RAM中的异常向量块映射到异常向量地址空间中。此后, 系统若产生异常, 处理器将从已映射到异常向量地址空间的片内RAM中读取异常向量。
3 初始化堆栈
ARM处理器共有7种处理模式, 在不同的工作模式下, 系统所分配的堆栈空间是不同的, 因此要分别进行初始化。具体来说, 除了系统模式 (sys) 跟用户模式 (usr) 使用相同的堆栈空间外, 其他5种模式分别使用各自的堆栈空间。在实现上, 系统模式跟用户模式使用相同的SP (Stack Pointer) , 其他模式有自己的SP。堆栈初始化代码如下:
第一段代码是为了给堆栈分配内存空间, 第二段程序主要是为了建立堆栈指针。
4 程序的加载
在映像文件运行之前, 即加载时, 该映像文件包括一个单一的加载时域, 该加载时域中包含所有的RO属性的输出段和RW属性的输出段, ZI属性的输出段此时还不存在。
芯片复位后, 系统进入管理模式, PC (R15) 寄存器值为0X0000 0000, 所以必须保证用户的向量表代码定位在0X00000000处。要把中断向量表定位在0X0000 0000, 就需要编写分散加载文件 (scatter) , 分散加载描述文件的作用是将代码段、数据段分别定位到指定的地址上。
参考文献
[1]孙昊, 曹玉强, 杜秀芳.ARM处理器启动代码的分析与编程[J].工业控制计算机, 2005 (11) .
[2]张喜俊, 牟龙华.LPC2000系列ARM处理器重映射原理的分析与实现[J].电子测量技术, 2007 (1) .
[3]蔡治, 李丕银, 刘宏生, 张建.基于ARM核的嵌入式应用系统中的启动代码的编程[J].电子科技, 2005 (6) .
LPc旅游手册 篇3
1 硬件设计
1.1 LPC2364微控制器
LPC2364是一款基于ARM的微控制器,适用于各种串行通信的应用。该微控制器包含了10/100 Ethernet MAC、USB 2.0全速接口、4个UART、2路CAN通道、1个SPI接口、2个同步串行端口、3个I2C接口、1个I2S接口和MiniBus。
1.2 液晶显示器DV320240F
DV320240F是深圳迪威液晶显示技术有限公司生产的一款液晶显示芯片,其内含硬件字库和RA8835控制器,并具有较好的抗干扰能力。DV320240F编程模式简单,性能比较稳定,该芯片为320(列)×240(行)点阵,可显示20(列)×15(行)个(16×16点阵)汉字,也可完成图形和字符的显示,视域范围为122×92,可直接用3.3V或5V供电。
1.3 LCD模块及其与LPC2364的硬件接口
之所以选择DV320240F芯片,就是因为其内部已嵌入了RA8835控制器,并且将接口电路直接引出,这对于用户而言,简化了整体设计,只需要考虑LPC2364同接口电路间的连接。在此,DV320240F与LPC2364采用直接连接的方法。即将DV320240F的8路并行输入输出管脚分别与LPC2364的P0.0-P0.7引脚相连,其余的复位(RES)、读(RD)、写(WR)、片选(CS)和I/O缓冲器选择信号(A0)5路控制管脚则与LPC2364的P0.8-P0.12连接。DV320240F与LPC2364的连接如图1所示。
2 LCD显示软件设计
LPC2364控制LCD芯片的正常运行,首先对LCD进行引脚连接的功能设置及上电自动复位,然后进行LCD初始化。初始化结束后,微控制器将发出指令调用相关的函数,完成相应的LCD显示功能。程序流程图如图2所示。
3 结束语
该文完成了基于微控制器LPC2364的LCD接口设计,实现了用LPC2364控制液晶显示屏的人机界面系统。经实践证明,以上的设置方法在LPC2364与其他LCD模块进行连接时,所做修改不大,其移植性较好,具有一定的通用性。
参考文献
[1]广州周立功单片机发展有限公司.LPC23XX器件用户手册[Z/OL].http://www.zlgmcu.com/philips/arm/LPC23xx/LPC23XX_um.pdf,2009.
[2]深圳迪威液晶显示技术有限公司.图形液晶显示模块DV320240F说明书V1.0[Z/OL].http://www.lcmlcd.net/product-S.asp,2007.
[3]顾荣荣.基于LPC2138的LCD控制及触摸屏接口设计[J].科技信息,2008(18).
[4]杨亮.基于ARM7嵌入式触摸屏设计[J].国外电子测量技术,2006(8).
LPc旅游手册 篇4
脉冲宽度调制PWM (Pulse Width Modulation) 是一种对模拟量进行数字编码的方法, 目前已广泛应用于电力电子及通信控制领域, 工程应用中通过PWM来实现MOS管导通时间的改变, 即通过调制输出方波的占空比来改变输出电压。而SPWM, 就是使PWM占空比按正弦规律排列, 这样经过对SPWM波形进行适当的滤波即可以得到正弦波输出波形。该方法在交流逆变器的控制中广泛使用, 比如UPS和光伏技术等。
目前SPWM产生方法有硬件法和软件法两种, 硬件法是用三角波与正弦波输入比较器, 产生SPWM波, 而软件法则是利用单片机或其它嵌入式处理器产生SPWM波进行控制。本文利用ARM7的SPWM输出并结合简单的外围电路实现逆变功能[1]。
1 方案论证
如图1所示, 硬件电路由DC-AC变换器、滤波电路、变压器组成;系统的控制核心为LPC2131, 它是一个基于实时仿真和跟踪的16/32位ARM7TDMI CPU, 在该方案中SPWM控制波形通过编程生成。该系统是一个闭环系统, 通过输出的反馈信号来检测正弦波的频率、相位, 并由A/D采样欠压、过流信号来进行频率、相位的跟踪和欠压、过流保护。
本方案中, 逆变桥采用半桥式逆变电路, 只需要两个开关管, 电路较简单, 容易实现。因为本文研究的对象主要是针对SPWM逆变控制的验证, 为中小功率的逆变电源, 故采用MOSFET管, 最终选定IRF3205作为变换电路的开关管。
根据国家电力并网的要求, 对于逆变电源, 必须满足输出交流电压的相位频率与电网标准相同, 不会污染到电力系统, 故该系统中还包含了频率相位检测、电压电流检测子系统。
系统SPWM输出控制部分采用软件法, 由ARM7接口的PWM口输出SPWM波形, 该方法比前述的硬件法更简单, 因为是数字转换, 故抗干扰能力强。
2 理论分析与计算
根据SPWM控制基本原理, SPWM波形等效为正弦半波效果, 如图2所示。欲产生正弦波形, 首先必须产生等效的SPWM波形。在此采用软件法产生SPWM波形, 采用查表法, 表中数据为按正弦规律变化的脉冲宽度, 定义为一个一维数组, 宽度由MATLAB工具计算得到。
3 LPC2131硬件资源
本系统控制核心由Philips公司的单片16/32位微处理器LPC2131完成, 该控制器具有两个32位可编程定时/计数器, 定时/计数器的功能是对外设时钟 (PCLK) 周期进行计数产生中断, 可通过捕获输入实现脉宽调制, 在这里使用定时器0。LPC2131的PWM建立在标准定时器0/1之上, 两个匹配寄存器 (PWMMR0和PWMMR2) 可用于单边沿控制PWM输出。PWM周期率由PWM-MR0控制, PWM边沿的位置由PWMMR2控制。向量中断控制器VIC具有32个中断请求输入, 其中用到了向量控制0寄存器 (VICVectCntl0) , 中断编程使用的是向量IRQ, 另两种为FIQ和非向量IRQ。GPIO使用P0.7作为PWM的输出口[2]。
LPC2131硬件产生SPWM波形过程如图3所示: (1) 定时器0中断为 (1/18000) 秒进行一次中断, T0MR0= (Fpclk/18000) ; (2) 每次在定时器中断时改变PWM的占空比, 并且有一个计数变量 (count=0) , 进入一次中断则count++, 当count加到360时则count重新从0开始计; (3) 按照以上设置, PWM的占空比改变的周期应该为 (1/18 000) ×360=0.02s, 即频率为50Hz。
4 调试与测试
系统软件调试采用第三方软件ADS1.2, 工程目录如图4所示, 其中存储器配置文件为mem_a.scf、mem_b.scf、mem_c.scf, 启动文件startup.s, 中断向量表IRQ.s, 板级文件target.c.
按照以上思路编写出的软件经过编译调试, 运行良好, SPWM波形正常。脱离仿真环境后和逆变电路连接在一起, 驱动MOS管工作, 逆变出的单相正弦波波形良好, 基频为50Hz。从结果看出, SPWM所含的基波频率与程序设定的调制波频率一致, 见图5。
5 结语
由测试结果可知, 采用本文方式输出的交流信号频率相位稳定、输出正弦波形失真较小, 具有过流与欠压保护功能;系统体积小, 接口丰富易于扩展, 有较大的灵活性, 对于车载电源等嵌入式逆变电源, 该设计应用价值很大。
参考文献
[1]唐永彬.基于ARM7的光伏并网发电模拟系统设计与实现[J].科学技术与工程, 2011, 11 (7) :1608-1612.
LPc旅游手册 篇5
电源系统运行质量的好坏将直接关系到整套车载系统的运行质量及安危。这决定了电源监控系统必须是实时性、准确性、快速响应性都很高的大型分布式网络系统。它必须具有“三遥” (遥测、遥控和遥信) 的基本功能, 数据的存储及处理、告警的查询分析和统计等功能也必不可少。随着计算机网络技术的迅速发展, 全数字的现场总线控制系统代替数字与模拟混合分布式控制系统已经成为工业自动化控制系统发展的必然趋势[1], 本文采用LPC2294作为监控模块主控芯片组建了基于CAN总线监控网络, 并设计了简单实用的车载CAN总线应用层协议;监控模块通过工业以太网与PC机连接, 实现系统的后台监控。经过实际应用验证, 能够满足本系统的通讯要求。
1 电源监控系统总体结构
系统采用分级监控的设计方案, 包括逆变电源、开关电源及电池控制模块、监控单元、后台终端三级设备。示意图如图1所示。
逆变电源、开关电源和电池控制模块均自带监控板负责各自模块的状态监控, 是系统的第一级监控。监控单元对整个电源系统的状态进行监控, 同时处理与车载终端及后台终端的通信, 是系统的第二级监控。后台终端用于数据配置和远程监控, 是系统的第三级监控。
2 监控单元硬件设计
监控单元由主监控板、128×64点阵液晶显示屏、键盘及指示灯等组成, 完成蓄电池充放电管理, 运行及控制参数的设定和显示, 告警记录的存储、查询, 通过以太网和上位机通信, 通过CAN总线与逆变电源模块、开关电源模块和蓄电池控制通讯。通过工业以太网与PC机相连, 实现后台监控。
LPC2294是一款基于16/32位ARM7TDMI-S, 并支持实时仿真和跟踪的CPU, 并带有256 k字节嵌入的高速Flash存储器。128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用16位Thumb模式将代码规模降低超过30%, 而性能的损失却很小。
LPC2294采用144脚封装、极低的功耗、多个32位定时器、8路10位ADC、2/4路高级CAN通道、PWM输出以及多达9个的外部中断, 这款微控制器特别适合自动化、工业控制、医疗系统、访问控制和故障容限维护总线等应用领域。其内部可用GPIOs范围为76脚 (外部存储区) 到112脚 (单片) 。由于内置了宽范围的串行通信接口, 它们也非常适合于通信网关、协议转换器、嵌入式软件调制解调器以及其他各种类型的应用。
2.1 监控模块电源设计
监控模块电源要给中央处理器LPC2294提供数字DC3.3V、模拟DC3.3V、数字DC1.8V和模拟DC1.8V, 液晶控制器的DC5V电源, 液晶背光调节器的DC12V电源, 因此理想情况下电源系统需要提供六组独立电源, 其中两组DC 3.3V, 两组DC 1.8V。DC5V和DC12V采用AC220V转DC5V和DC12V开关电源模块实现;DC3.3V和DC1.8V选择低功耗的TPS767D318电源芯片, 把DC5V的标准电源电压转换得到最大可提供1A电流的DC3.3V和DC1.8V电源, 并且得到微处理器复位信号ARMn RST;利用LC滤波电路实现DC3.3V和DC1.8V的数模转换。如图3和图4所示。
2.2 实时时钟电路
为了记录系统发生故障的时间, 便于用户查看历史故障。在LPC2294上外接实时时钟芯片DS1306, DS1306采用2.7~5V供电, 系统上电时, 实时时钟由系统电源供电, 外接的电池电源作为后备电源, 系统掉电以后, 实时时钟由外接的电池供电, 仍能继续计时。由于DS1306需要进行秒、分、时的计时, 因此外接一个32 768 Hz的晶振。其电路图如图5。
2.3 液晶键盘接口电路
液晶采用RT12864-2M汉字图形点阵液晶显示模块, 可显示汉字及图形, 考虑到监控的参数众多, 一屏无法全部显示, 故采用菜单式操作方法, 即选择显示屏显示的菜单信息, 在键盘按下合适的功能按键, 监控模块的微处理器根据按键送来的信息作出反应, 实现相应的功能。故按键要有数字键及功能键。液晶参数为:内置8 192个中文汉字 (16×16点阵) 、128个字符 (8×16点阵) 及64×256点阵显示RAM (GDRAM) ;配置LED背光;多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等。
3 监控系统软件设计
3.1 上位机程序设计
后台上位机程序采用C sharp (又被简称为“C#”) 编写, 分为TCP通讯、数据解析和数据管理三个方面。显示界面如图6所示。
3.2 监控模块程序设计
监控模块程序采用C语言编制, 分为数据通讯、实时时钟、数据存储、键盘输入和液晶显示。
3.2.1 数据通讯程序设计
监控系统总体结构如图7所示:
监控模块对逆变模块、开关电源和蓄电池管理模块通过CAN进行监控, 需要用到CAN总线的应用层协议, 目前基于CAN总线的商业协议主要有Device Net和CANopen两种, 但由于这两种协议是基于通用性目的而开发的, 其结构复杂, 并非完全适合于车载电源监控系统这种要求高可靠性的场合[2,3]。本文在参考其他协议的特点和设计思路的基础上, 设计出简单实用的CAN总线应用层协议。
本协议报文格式定义了CAN报文的标识符以及数据部分的使用原则和功能含义, 使网络中的CAN报文组成元素有了其特定的功能和意义。
在协议中指定了数据通信中的源节点MAC ID和目标节点MAC ID, 并指示了报文功能及其所要访问的资源。报文标识符被分为7个部分:报文优先级 (PRI) 、分段传输标志 (Seg Flag) 、功能码 (FCODE) 、目的MAC地址 (DMAC) 、源MAC地址 (SMAC) 、资源节点号 (SID) 以及ACK位。具体定义如表1所示。
功能码的定义如表2所示。
3.2.2 键盘程序设计
键盘选用的是4×4键盘, 采用扫描的方式, 共占用单片机8个I/O口, 4个I/O口作为行量, 4个I/O口作为列量, 如图8所示。分别对列量置0, 假如某一行的对应值变0, 则说明该行与列交叉的按键被按下。由于信息量比较大, 故需要分屏显示, 按键的具体功能设置如下:0~9为数字键, 具体为设置参数使用。E键为取消键, 即从子菜单中返回上级目录。F键为确定键, 参数设置后按此键设置确定。A键为上移按键, B键为下移按键。
4 实验应用
按照协议的规定, 网络中的节点MAC编制范围为0x00~0x FF, 在本系统中由于节点数量有限, 目前挂接在总线上的网络节点一共有7个, 包括两个逆变电源模块, 两个开关电源模块, 两个蓄电池控制和一个监控模块。将各节点MAC地址定义如表3所示。
监控模块液晶显示如图9所示, 蓄电池控制模块参数如图10所示。
5 结论
以ARM7微处理器LPC2294为主控芯片, 利用C#编写监控界面, 结合车载电源监控系统的结构特点, 设计CAN总线应用层协议, 实现了对电源状态的显示以及参数的设置等功能, 完成了整个电源监控系统的设计。
参考文献
[1]戴青云.CAN总线在逆变电源监控中的应用[J].电子工程师, 2007, 33 (1) :61-64.
[2]马晨普.一种适合于铁路机车车辆使用的CAN协议开发[J].电力机车与城轨车辆, 2005, 28 (4) :17-19.
LPc旅游手册 篇6
本文设计的摄像头自动聚焦系统,以LPC2103控制器为核心,利用LM1881视频同步分离电路对视频图像信号进行分离,根据对采集图像清晰度的分析,驱动步进电机产生相应动作,实现视频图像自动聚焦过程,聚焦效果可以通过显示屏观察。经测试,系统运行稳定,有较好的摄像聚焦效果。
1 系统方案设计
摄像头自动聚焦系统主要包括模拟摄像头、LPC2103控制器、10倍镜头、步进电机驱动电路和PAL显示器等部分。本系统利用10倍镜头对目标物体进行摄像,CCD图像传感器把光学信号转变成电信号———视频信号,并将图像视频信号经LM1881视频同步分离电路处理,分离出行同步信号,奇偶场同步信号和场信号。行同步信号和奇偶场信号输入到LPC2103作为视频图像采集的控制信号。LPC2103控制器对采集到的图像信号进行处理,并利用灰度差分法对图像是否处于最佳焦距作出判断。当图像聚焦效果不理想时,LPC2103控制器发出步进电机驱动控制信号,调节焦距,直至图像处于最佳聚焦效果状态。系统总体结构如图1所示:
2 系统硬件设计
本系统硬件部分主要分视频信号采集和分离电路以及步进电机驱动电路两部分。
2.1 视频信号采集和分离电路
本系统采用CCD图像传感器把光学信号转变成电信号———视频信号,然后利用视频信号专用处理芯片LM1881从CDD输入的视频信号中分离出行同步信号和奇偶场同步信号,行同步信号和奇偶场同步信号作为视频信号采集的控制信号输入给LPC2103。在既满足奇偶场同步和行同步的情况下,LPC2103对视频信号进行AD采集,将转换以后的数据保存在一个二维数组中。视频信号采集和分离电路如图2所示:
2.2 步进电机驱动电路
当LPC2103判别采集图像的清晰度未达到最佳状态,即图像聚焦效果不够理想时,就会驱动步进电机移动拉伸镜头,调节焦距,从而使采集图像信号处于最佳聚焦状态。要使步进电机正常工作,就必须满足步进电机的驱动条件,即必须要有一定的驱动电流。步进电机驱动电路如图3所示:
当P0.2,P0.3同时输入为高电平或低电平时,A和A_口均输出低电平;当P0.2输入低电平,P0.3输入高电平时,A口输出低电平,A_口输出高电平;当P0.2输入高电平,P0.3输入低电平时,A口输出高电平,A_口输出低电平。这样,电机的驱动电路不仅对IO口的电流进行了放大,而且还使两个输出端A和A-不会同时输出高平,保证了能够稳定的驱动步进电机,避免IO口驱动出现的竞争冒险现象。步进电机输出端B和B-的驱动电路与A和A-一致。
3 系统软件设计
3.1 图像清晰度的评价函数
要判断图像是否处于最佳聚焦位置,就必须对采集图像的清晰度进行分析,清晰度越高,证明图像聚焦的效果越好。常见的图像清晰度评价函数主要有brenner算子算法、tenegrad算子算法、平均方差算法、熵函数法等,本文采用灰度差分法作为图像清晰的的评价函数,该方法实现简单方便且具有较佳的聚焦效果。灰度差分法的具体计算公式如下:
其主要原理是:以一Nx N二维数组表示一幅图像,相邻两行对应元素相减求绝对值累加和,相邻两列对应元素相减求绝对值累加和,最后两者相加,所得f(i)值作为图像清晰度的判断标准,f(i)越大,图像越清晰。
3.2 图像视频信号的采集
图像视频信号采集流程图如图4所示:
CMOS传感器数据采集的速率是25帧/秒,一帧分奇偶两场,即50场/秒,场扫描时间20ms,每场312.5行,行扫描时间64us,行同步时间是12us,场同步时间2.024ms[4]。为了真实再现数据,要求LPC2103对视频信号采集速率不小于25场/秒。考虑到检测精度不需要太高和实时性要求,采取只对对偶场进行采集的策略。从数据可靠性与稳定性的角度考虑,选择每行采集50个点,每场采集50行,由于AD采集的参考电压为3.3V,而视频输入信号的电平在0V~1.5V,所以AD采集结果应该在0-500之间。
3.3 图像视频信号自动聚焦
图像视频信号自动聚焦主要包括图像数据处理模块和电机驱动模块,两者必须紧密配合才能达到自动聚焦的效果。首先图像视频信号采集模块采集一次图像数据,经过LPC2103控制器处理后,驱动电机,电机移动拉伸镜头后,图像视频信号采集模块第二次采集图像数据,LPC2103根据灰度差分算法比较两次图像的清晰度,判断图像是否处于最佳聚焦位置,其次驱动电机向焦点位置移动[5]。图像视频信号自动聚焦程序流程图如图5所示:
4 系统测试
以鼠标为目标测试对象,将鼠标置于摄像头前某一固定位置,启动LPC2103控制器工作,得到的聚焦效果如图6中的(a)、(b)、(c)、(d)所示,聚焦曲线如图7所示。
测试结果表明,LPC2103控制器对采集到的图像视频信号进行处理分析,根据灰度差分算法所得灰度差分值f(i)大小的比较,判断图像是否处于最佳聚焦位置。当聚焦后图像的清晰度未达到要求时,就会驱动步进电机拉伸镜头,逐步调整焦距,逐渐趋于最佳聚焦焦点位置;当聚焦位置过头,控制器会驱动电机方向拉伸镜头,是聚焦位置重新向最佳焦点位置移动,反复进行该过程若干次后,最终图像会停留在最佳聚焦位置处。
5 结束语
本系统设计摄像头自动聚焦系统,是图像传感器技术、视频信号处理技术和图像处理技术的有机结合。该设计以LPC2103控制器为核心,辅助于视频信号同步分离和步进电机驱动外围电路,以灰度差分算法作为图像聚焦程度的评价函数,根据采集图像前后对比情况,调节焦距,以使采集图像能够处于最佳聚焦位置。经系统测试,本系统能够对一定范围内的图像进行自动聚焦,并且达到了一定的控制精度要求。
参考文献
[1]葛亚明,刘涛,王宗艺.视频同步信号分离芯片LM1881及其应用[J].应用科技.2004,31(9):20-22.
[2]张武祖,许世文.利用CCD实现高精度自动调焦系统[J].哈工大学报,1986(3):21-24.
[3]张文爱,李逢磊,程永强.基于FPGA的步进电机驱动及自动聚焦的实现[J].电子技术应用,2008(5):31-33.
[4]张海山,李伟.视频采集与处理方法[J].河北理工大学学报,2007,29(1):75-77.
LPc旅游手册 篇7
设计应用到LPC1768内部的AD转换器对外部的电压进行采集, 并把检测结果显示在显示屏上, 当检测值超过设定值就进行报警, 还可以把检测结果通过串口发送到电脑上显示。因此, 电路主要由电压模拟量输入电路、串口模块、显示模块、按键模块、报警模块等组成。具体如图1所示。
2 Cortex-M3系列lpc1768微控制器
Cortex-M3系列lpc1768微控制器的工作频率可达100MHz, CPU具有3级流水线和哈佛结构, 具备独立的本地指令和数据总线以及用于外设的稍微低性能的第三条总线, 内置了嵌套的向量中断控制器 (NVIC) , 外设丰富, 具有ISP和IAP功能, 工作电压低。包含高达512KB片上Flash程序存储器。把增强型的Flash存储加速器和Flash存储器在CPU本地代码/数据总线上的位置进行整合, 则Flash可提供高性能的代码。
3 电路硬件设计
3.1 电源供电设计
本设计采用两种方式供电:一是通过外接+5V电源供电, 另一种使用USB供电。5V电源输入1117-3.3以获得3.3V电源, 给系统供电。
3.2 报警电路
报警电路采用了三极管8550和LED、蜂鸣器组成的声光报警。当LPC1768处理器的引脚输出低电平时, 三极管8550导通, 接在发射极上的LED点亮, 并且蜂鸣发出报警声音。
3.3 LCD液晶显示模块
液晶显示模块采用的是240×320的彩色液晶显示器, 可以显示汉字、图片和数字, 界面更加直观、生动。考虑到触摸功能, 因此采用的是2.8寸彩屏触摸模块。
3.4 串口通讯电路
Max3232是工作在3.3V的RS232电平转换芯片, 内部有2组串口转换电路, 系统采用LPC1768的串口0和串口2。串口0是用于ISP编程, 串口2是用于传输数据。
4 软件设计
系统软件由电压检测程序、显示程序、报警程序等组成。电压检测程序负责检测外部电压, 显示程序主要是将检测的电压值显示在显示屏上。报警程序主要是当检测电压值超过设定值进行报警。主要工作过程是:系统上电后, 按键按下, 系统正常工作, 并开始检测到当前的电压值, 电压值经过芯片内部AD转换处理后, 在液晶屏显示出来, 并可通过串口与电脑连接把检测到的电压值发送到电脑并显示其值。可以调节电位器使电压值变化。当电压值大于等于设定值时, 发生报警, 扬声器响。
4.1 系统的主程序
当产品通电后, 液晶显示屏上显示相关的信息, 点击触摸屏上的“启动”按键, 系统就开始采集外部电压, 电压经过AD转换后, 送处LPC1768处理器进行数学运算和处理, 把计算的电压值在LCD液晶显示屏上显示, 数据也会将通过串口传送室PC机上的采集软件中保存。实时采集的电压值小于设定的上限数据时, 蜂鸣器不响、LED不亮, 系统正常。当电压值超过设定的上限数据时, LED闪烁, 同时扬声器报警。此时, 可以点击触摸屏上的“停止”按键, 系统停止工作, 此时液晶显示屏上的数据不再发生变化。
4.2 AD转换数据采集程序
AD转换器需要正确配置内部的寄存器。当给指定信号后才能接受外部输入的电压, 在一定脉冲频率下进行转换, 当检测到转换结束停止ADC转换, 接着把数据送入处理器进行处理。为了减少数据的误差, 通常采取采集数次数据结果取平均值作为采集结果。
4.3 液晶显示程序
液晶显示主要是为把采集和处理后的数据在显示屏的指定位置上显示, 增加直观的效果。液晶显示程序主要包括液晶初始化、字符转换、结果显示几个组成部分。液晶初始化主要是配置液晶的寄存器, 通常有工作方式、显示模式等;字符转换转换主要是把需要显示的结果转换成液晶显示的固定格式;结果显示是把数据在固定的位置显示。
5 测试结果
把编写好的程序编译好下载系统中, 按下开始键观察LCD屏上显示的电压值, 用万用表测待测电压的两端, 调节电位器并观察万用表和LCD屏上的电压值。开发板通过串口与电脑连接把检测到的电压发送到电脑上, 观察电脑上显示的电压值。采样电压是0000mv, 0500 mv, 2250 mv, 2460 mv, 5000 mv时, 显示电压值分别为:0000 mv、0500 mv、2250 mv、2460 mv、3300 mv。由于系统工作的电压是3.3V, 所以当检测最大显示电压值得为3300mv。使用串口调试助手可以接收到发送回来的电压值, 具体如图2所示。
摘要:本系统运用Cortex-M3系列lpc1768芯片微控制器实现对外部送入电压的测量。该系统可以精确地检测到外部的一个待测电压值, 并通过TFT彩色LCD模块显示出其值。把待检测的电压送入lpc1768芯片AD输入通道, 经过AD转换并通过处理, 最后在TFT彩色LCD模块上显示其电压值, 当电压超过一定的数值时, 就会报警;并通过串口发送到电脑上, 在电脑显示其电压值, 实现简便、方便快捷、精确度高。
关键词:嵌入式lpc1768芯片,电压检测,LCD模块,串口通讯
参考文献
[1]周立功, 张华等.深入浅出ARM7—LPC213x/214x.北京:北京航空航天大学出版社, 2005.
【LPc旅游手册】推荐阅读:
东南亚旅游组团-新马泰出团手册11-18
业务员员工手册员工手册06-04
员工考勤管理手册员工手册06-17
计划手册10-20
培训手册05-12
数据手册06-09
养护手册07-03
教师手册07-10
员工手册11-10
履职手册05-13