基于ARM处理器的显示屏控制器的设计

发布者:MagicalSerenade最新更新时间:2012-03-26 来源: 微计算机信息 关键字:ARM  μCOS-II系统  扫描逻辑  集群控制 手机看文章 扫描二维码
随时随地手机看文章

1 引言

LED显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕,主要应用在公众场合的信息发布。它具有发光效率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。本文提出了一款基于32位高性能ARM处理器和μC/OS-II的显示屏控制器的设计方案。它充分利用了μC /OS-II高效的多任务管理功能和ARM处理器强大的运算能力,实现了单屏幕多窗口的任意位置显示,使得屏幕显示内容变得更加丰富,显示方式变得更加灵活。从而使得控制器同步化。

2 控制器硬件总体结构设计

本控制器的硬件结构框图如图1所示。数据处理模块由MCU,一片SRAM和一片FLASH存储器组成。MCU选用基于32位ARM内核的 LPC2214处理器,它有着丰富的外围接口资源和强大的运算能力,是整个控制器的核心。SRAM作为MCU进行特技处理时的缓存使用。FLASH存储器用于存储显示的点阵信息和一些必要的参数。扫描控制模块由CPLD和显存组成。显存为一片SRAM,它用于保存当前正在显示的一帧数据。通信模块包括以太网模块和串口通信模块,可以实现PC与控制器的RS232、RS485以及工业以太网通信。

图1 控制器的硬件结构框图

3 控制器硬件详细设计

1、RTC电路。LPC2214内部集成了RTC功能模块,但由于其时钟源为VPB时钟,故其不能在芯片断电时使用,故其不适合由电池供电的系统。故我们在这里采用了外置的RTC芯片--HOLTEK公司生产的低功耗串行实时时钟芯片HT1381。HT1381采用串行传输方式与微处理器接口,只需三根引线就可以实现微处理器对HT1381访问控制。RTC部分电路原理图如图2所示,图中,C1、C2、G1及X1和X2内部的振荡器组成了 HT1381的时钟发生电路。D1、D2、D3以及3V的可充电电池,+3.3V的电源组成了HT1381的供电电路。系统采用外部供电时,D3、D2 导通,D1截止,外部电源一方面向芯片供电,另一方面对充电电池进行充电。当系统电源停止供电时,D3截止,D1导通,芯片由电池来供电。

图2 RTC电路

2、温度传感器电路。DS18B20是单总线数字温度传感器。DS18B20采用3脚封装,从DS18B20读出或写入数据仅需要一根I/O线。并且以串行通信的方式与微控制器进行数据通信。该器件将半导体温敏器件、A/D转换器、存储器等集成在一个很小的电路芯片上,传感器直接输出的就是温度信号的数字值。信号传输采用两芯(或三芯)电缆构成的单总线结构。一条单总线电缆上可以挂接若干个数字温度传感器,每个传感器有一个唯一的地址编码。微控制器通过对器件的寻址,就可以读取某一个传感器的温度值,从而简化了信号采集系统的电路结构。采集端口的连接线减少了50倍,既节省了造价,又给现场施工带来极大的方便。

3、串行接口电路。虽然,现如今以太网通信的使用已非常普及,但由于串行通信接线少、成本低,所以其在数据采集和控制系统中仍然有着非常广泛的应用。RS232和RS485两种标准的主要区别与使用平衡信号和非平衡信号有关。RS232采用非平衡信号,而RS485采用平衡信号。究竟采用哪一种, 主要取决于传输距离和电器噪声两个因素。在传输距离小于30米,并且环境电器噪声较小情况下,最好采用非平衡的RS232,在传输距离较长,但小于300 米时,或者环境电器噪声影响必需考虑时,最好采用RS485。并且RS485的二线制通讯方式可实现真正的多点双向通信。

4、自动调亮电路。在环境光线较弱时,LED屏的亮度应相应降低,否则会显得刺眼。而在环境光线较强时,LED屏的亮度也应相应提高,否则屏幕显示内容会看不清楚。所以控制器需根据周围光线的亮度来自动调整量度。为了实现上述功能,系统采用了光敏电阻,与一定值电阻串联,当外界环境光线变化时,光敏电阻阻值发生变化,R2所分电压也跟着发生变化,然后根据此电压值来调整屏幕亮度,具体电路如图3所示。LPC2214具有8路10位ADC转换器,其参考电压为3.3V,参考电压的精度会影响ADC的转换结果。R1为I/O口保护电阻,用于保证电路不产生短路故障。

图3 自动调亮电路[page]

5、LED显示屏扫描驱动电路。LED显示屏的扫描逻辑由CPLD来实现,CPLD采用 Altera的EPM1270。EPM1270属于Altera的MAX II系列。MAX II是Altera推出的迄今为止成本最低的CPLD器件。

3 LED扫描逻辑设计

LED扫描逻辑采用CPLD来实现,它具有很好的组合逻辑和时序逻辑功能,能够完成LED显示所需要的扫描控制信号。CPLD设计框图如图4所示, 它主要包括以下几个模块:⑴ 时钟进程:产生各种频率的时钟;⑵ FIFO:CPLD与MCU之间的接口部分,用作数据缓冲,它使得MCU可以对显存进行全速写操作;⑶ 写入地址及数据产生器:产生向显存进行写操作的地址和数据;⑷ 读地址产生器:扫描方式不同,从显存中读取数据时的寻址方式也不同,读地址产生器,可根据扫描方式的不同,产生不同的读显存的地址,从而完成1/16、1 /8、1/4等扫描方式;⑸ 扫描控制电路:在不同的扫描方式下,根据从显存中读取的数据产生相应的扫描控制信号;⑹ 读写切换电路:对显存的读写状态进行切换。

图4 CPLD设计框图

4 基于μc/OS-II控制器软件设计

为了实现单屏幕、多窗口任意位置的显示,软件部分我们基于μc/OS-II进行设计,这样可以充分利用操作系统高效的任务调度算法,将每个窗口的显示都交由单个任务来完成,从而极大地提高系统的运行速度和可靠性,并且使得程序的开发和扩展变得更加方便。程序的结构如图5所示,控制器上电后,首先进行系统初始化,然后从 FLASH 中读取屏参数,进行参数初始化。然后建立任务TaskControl,TaskControl用于对各窗口显示任务进行实时管理,它拥有比各窗口显示任都高的优先级。它每隔1s对reset标志进行一次查询,如果reset=1,则删除原先建立的各窗口显示任务,然后从FLASH中读取新的窗口个数,然后依此建立新任务,将每个窗口的显示交由单个任务来控制。

图5 系统程序结构图

1、RS485总线的集群通讯协议。其具体过程如下:首先,PC向控制器发送地址帧,地址帧采用MARK校验。它包括6个字节,第一个字节为地址码,控制器接收到这个字节后,先判断其是否与自己的地址相同,如果相同则继续接收下一个字节,否则就退出中断,每个控制器的地址可通过控制器上的拨码开关来设置。接下来的三个字节为屏参数,他主要包括屏的横向点数、纵向点数和显示屏的色彩(单、双色)。控制器接收到这几个参数后,先与自身参数进行比较,如果参数不相同则退出中断,否则继续接收下一个字节。接下来发送的一个字节为操作码,它主要是告诉控制器下面是要进行什么样的操作,这些操作包括加载屏参、系统复位、加载数据、开关机等。控制器会根据操作码来对Flash进行操作。

2、GUI接口的设计。GUI为Graphic User Interface的缩写,即图形用户接口。它是建立在计算机图形学基础上的产物,它可用于提高人机交互友好性,在LED屏上我们可以用它来实现许多意想不到的效果。这里提供了在LED屏上最基本的画点、线、圆等功能。

(1) 画点函数。一切图形都是由一个一个点来组成的,它是图形的最基本元素,描述一个点时需要使用其坐标值(X,Y)和颜色。对于双色LED屏颜色值0表示绿色,1表色红色,2表示黄色。在画点时,先把指定的点坐标值转换为显存上的对应字节,然后对相应字节进行颜色处理。然后在将此字节写入显存完成该点的显示。(2) 画线函数。对于直线的绘画,分为水平线、垂直线和一般直线3种绘画方法。其实一般直线就包括水平直线和垂直线,但由于这两种直线较为特殊,绘画操作不需要像其他直线一样须进行较多的运算,故将它们分开有利于提高绘画的速度。

本文作者创新点

本文主要介绍了一款基于32位高性能ARM处理器和μC/OS-II的显示屏控制器的设计方案。本系统充分利用了μC/OS-II高效的多任务管理功能和ARM处理器强大的运算能力,实现了单屏幕多窗口的任意位置显示,使得屏幕显示内容变得更加丰富,显示方式变得更加灵活,使得控制器同步化。

参考文献:

[1] 龚兆岗.基于ARM处理器的LED可变情报板嵌入式控制器[J].现代显示.2006, (06)

[2] 张叔猛.嵌入式系统和FPGA在LED显示屏中的应用研究与实现[J].武汉理工大学.2005

[3] Jean. Labrosse著,邵贝贝等译.嵌入式操作系统μC/OS-II(第二版)[M].北京航空航天大学出版社.2005年

[4] 宋晖, 高小明. 基于ARM的嵌入式操作系统μC/OS-II的移植[J]. 微计算机信息, 2006,2-2: 135-136

关键字:ARM  μCOS-II系统  扫描逻辑  集群控制 引用地址:基于ARM处理器的显示屏控制器的设计

上一篇:EmJTAG 协议转换器的设计与实现
下一篇:嵌入式无线视频监控系统设计

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

ARM aarch64汇编学习笔记(二):ARM DS-5模拟器安装和使用
工欲善其事,必先利其器。 使用Qemu 虽然可以进行模拟开发,但在Qemu调试汇编有一些困难。 DS-5 (即ARM Development Studio 5) ,是一款针对 ARM 支持的 Linux 和 Android 平台的全面的端到端软件开发工具套件。 DS-5 安装 从官网选择一个ARM DS-5版本进行下载 我选择的版本是5.26.2, 已经支持Arm v8了。 下载完成后,解压, 点击setup.exe 进行安装, 安装完成后需要添加license, 否则项目无法编译。 license添加完成后既可以正常使用。 ##使用DS-5 创建程序 首先新建一个空的C project, 输入project
[单片机]
<font color='red'>ARM</font> aarch64汇编学习笔记(二):<font color='red'>ARM</font> DS-5模拟器安装和使用
ARM菜鸟:JLINK与JTAG的区别
调试ARM,要遵循ARM的调试接口协议,JTAG就是其中的一种。当仿真时,IAR、KEIL、ADS等都有一个公共的调试接口,RDI就是其中的一种,那么我们如何完成RDI-- ARM调试协议(JTAG)的转换呢?有以下两种做法: 1.在电脑上写一个服务程序,把IAR、KEIL和ADS中的RDI命令解析成相关的JTAG协议,然后通后一个物理转换接口(注意,这个转换只是电气 物理层上的转换,就像RS232那样的作用)发送你的的目标板。H-JTAG就是这样的。H-JTAG的硬件就仅是一个物理电平的转换接口,所以很简单。 而电脑中装的h-JTAG软件就是前面说到的服务程序,负责协议转换的。 2.做一个板,用此板直接接收来自IAR、KEI
[单片机]
Azure ARM (10) ARM模式下的虚拟机和Classic Model虚拟机的区别
  请读者注意,在Azure ARM平台,有两种虚拟机模式:经典虚拟机和ARM虚拟机     ASM部署(经典虚拟机):   1.我们通过Azure Classic Portal: http://manage.windowsazure.cn ,部署的都是ASM资源(经典虚拟机)      2.如果我们通过Azure New Portal ( http://portal.azure.cn ) 创建,需要选择部署模式为Classic Deployment      ARM部署   1.我们通过Azure New Portal ( http://portal.azure.cn ) 创建      2.部署方式选择,Depl
[单片机]
Azure <font color='red'>ARM</font> (10) <font color='red'>ARM</font>模式下的虚拟机和Classic Model虚拟机的区别
阅读ARM Memory(L1/L2/MMU)笔记
《ARM Architecture Reference Manual ARMv8-A》里面有Memory层级框架图,从中可以看出L1、L2、DRAM、Disk、MMU之间的关系,以及他们在整个存储系统中扮演的角色。 涉及到的相关文档有: 《ARM Architecture Reference Manual ARMv8-A》:E2 The AArch32 Application Level Memory Model和G3 The AArch32 System Level Memory Model两个章节,从总体架构上介绍了ARMv8-A Memory系统。 《Cortex-A53 TRM》:6 Level 1 Memory Sy
[单片机]
阅读<font color='red'>ARM</font> Memory(L1/L2/MMU)笔记
英蓓特在中国分销ARM RealView和Keil开发工具
ARM分销网络的扩展为中国基于ARM解决方案设计师提供获得先进的ARM工具的便捷途径 深圳市英蓓特信息技术有限公司(英蓓特)和ARM公司(伦敦证交所:ARM;纳斯达克:ARMHY)今天宣布:英蓓特被指定为ARM RealView及KeilTM嵌入式开发工具在中国的分销商。这一对RealView和Keil开发工具分销网络的扩展使得中国设计基于ARM产品的工程师能够更方便的获得先进的ARM工具,以实现高质量的系统开发和快速的产品上市时间。 作为嵌入式系统领域被最广泛选用的架构,ARM不但向工程师提供先进的CPU产品,还提供完整的工具,帮助他们在开发周期的早期就能够创建、验证、模型化并测试他们的SoC设计。英蓓特早前已经成为AR
[焦点新闻]
ARM920T的CP15协处理器
Cache ARM920T有16K的数据Cache和16K的指令Cache,这两个Cache是基本相同的,数据Cache多了一些写回内存的机制,后面我们以数 据Cache为例来介绍Cache的基本原理。我们已经知道,Cache中的存储单位是Cache Line,ARM920T的一个Cache Line是32字节,因此16K的Cache由512条Cache Line组成。要了解Cache的基本原理,我们从如何设计Cache这个问题入手。 设计Cache的一种最朴素的想法是,把VA分成以32字节为单位,从任何一个对齐到32字节地址边界的VA开始连续的32个字节(比如0x00- 0x1f,0x20-0x3f,0x40-0x5f等
[单片机]
<font color='red'>ARM</font>920T的CP15协处理器
ARM汇编学习之寄存器
------------------------------------------------------------- Author :tiger-john WebSite :blog.csdn.net/tigerjb Email : jibo.tiger@gmail.com Update-Time : 2011年2月14日星期一 Tiger声明:本人鄙视直接复制本人文章而不加出处的个人或团体, 但不排斥别人转载tiger-john的文章,只是请您注明出处并和本人 联系或留言给我。3Q ----------------------------------------------------
[单片机]
<font color='red'>ARM</font>汇编学习之寄存器
基于ARM单片机的双相步进电机细分驱动器设计
步进电机是一种运用广泛的控制电机,其特征是不使用位置反馈回路就能进行速度控制及定位控制,即所谓的电机开环控制。相对于伺服电机,步进电机有着成本低廉,控制简单等优点,尤其是两相混合式步进电机,在工业运动控制系统中有着广泛的应用。然而,传统的驱动方式,比如单电压驱动、高低电压驱动、斩波恒流驱动等等,虽然已经应用十分成熟,但是只限于低速运行,并且细分度一般限制在1/2步距,无法很好消除低频振荡,以及定位精度差等缺点。细分驱动的出现很好地弥补了这一缺点。 常见的细分控制器一般由MCU、专用逻辑驱动芯片以及功率驱动模块组成,这样的驱动器虽然能满足多细分驱动,但由于细分数量和效果会受到逻辑驱动芯片的影响,并且无法调整细分数和限流值
[单片机]
基于<font color='red'>ARM</font>单片机的双相步进电机细分驱动器设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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