当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]1 引言近年来随着低成本高性能32位微处理器的出现,越来越多的工程设计人员把目光投向32位嵌入式产品的开发中。目前arm系列32位微处理器在低功耗移动通信设备方面占有绝对优

1 引言

近年来随着低成本高性能32位微处理器的出现,越来越多的工程设计人员把目光投向32位嵌入式产品的开发中。目前arm系列32位微处理器在低功耗移动通信设备方面占有绝对优势;Motorola的MC683xx系列和Cold Fire系列主要用于工控、智能化仪表和汽车电子等领域;SoC技术是系统开发越来越倾向于32位CPU为核心,32位微处理器日益显示出其巨大的优越性。显示器件是嵌入式系统进行人机交互的重要设备,液晶显示器具有体积小、微功耗、低辐射、性能可靠等优点,已经成为工程技术人员进行系统设计的首选。但目前常用的多种液晶显示控制器还仅是基于8位总线并且管理显示存储器空间较小,在系统有大量高速实时数据的情况下就有些吃力, “显示瓶颈”有待解决。对此本文提出了一种基于16位总线的大规模点阵图形液晶显示控制器SED1353和32位微处理器相结合的液晶显示系统,有效地解决上述问题。

2 SED1353图形液晶显示控制器简介及其接口原理

SED1353图形液晶显示控制器作为计算机系统控制液晶显示模块的专用芯片,具有8 位/16位计算机总线接口;内置调色板,最大支持256 种色彩或16 级灰度的液晶显示屏;具有管理128KB显示存储器空间的能力,可支持最大分辨率为1024×1024点阵液晶显示模块,提供了比较宽的应用领域。

SED1353 是一种可以由微处理器管理显示存储器的液晶显示控制芯片,即微处理器可以采用访问外部存储器的方法直接对显示存储器和它的16个内部寄存器进行设置读取。相比由控制器管理显示存储器方式的液晶显示控制器(典型芯片如SED1335) ,SED1353的优点是显而易见的,它不需要反复写指令再写数据完成对显示存储器和内部寄存器的管理,控制效率大为提高。由于要分配一定地址空间给显示存储器,SED1353控制器的缺点是占系统资源比较多。微处理器在访问SED1353的内部寄存器时,地址总线分为三部分:A15~A10组合作为寄存器片选信号I/ OCS ;A9~A4作为基地址且需要与上电时的VD12~VD7比较,相等才进行内部译码选通寄存器;A3~A0作为16个寄存器AUX[ 0~ F ]的地址。微处理器访问显示存储器时,地址总线分为两部分:A19~A17高位地址对应显示存储器的128KB地址空间,与VD15~VD13设置相等才内部译码选通显示存储器;A16 等地址线组合作为显示存储器片选信号MEMCS # ,以对显示存储器单元进行操作。

3  硬件系统设计

3.1 MC68332与SED1353的接口电路设计

MC68332通过地址总线、数据总线,/CS8片选信号、数据传输宽度信号SIZ0 、A0及读写控制R/W, 外围器件接口应答信号/DSACK1 ,同SED1353进行异步数据传送。SED1353的I/O地址空间分配为$200000~$23FFFF。其中SED1353的16 个8位寄存器地址为$200000~$20000F ;显示存储器占用128KB地址空间,即$220000 ~$23FFFF。

/CS8 允许的地址空间块大小设置为256KB , 起始地址$200000。/DSACD1指明外部外围器件宽度为16 位;可访问管理/ 用户级空间;允许进行读写访问。故CS8基址寄存器和选择寄存器编程为: CSBAR8=$2005 ;CSOR8=$7BF0。MC68332与SED1353 的接口电路如图1 所示。图1还给出了SED1353与液晶屏LM64P83L 的接口电路。SED1353通过显示存储器的数据总线VD15~VD0 的复位上电设置自己的I/ O 地址。设数值1 表示该端接一个10kΩ 电阻上拉至高电平,0 表示不接上拉电阻, x 表示任意。故设置VD15 ~VD13 = 001 ;VD12~VD4=000000xxx ;其中VD3~VD0 =1 ,表示16位数据总线、直接访问方式、M68000 时序及总线高低字节交换。

3.2 地址译码GAL 的设计

当MC68332 的字或长字数据传送到SED1353的I/O偶数地址(受对准限制)时,需要使BHE# 、AB0/UDS#同时低电平有效。单字节传输虽然不受对准限制,但单字节数据传送到SED1353的I/O奇数地址时(如访问SED1353内部8位寄存器) ,需要使SED1353的BHE#低电平有效,AB0/UDS#高电平无效;此外,MC68332设置定义的CS8定义的地址空间包括了内部寄存器和显示存储器的地址空间,此时还不能将各自的片选信号分开。因此可通过可编程逻辑器件来解决这一问题,GAL将依据下列等式编程:

IOCS # = ! ( ! CS8 &! A17 &! A16 & A15 &! A14 &! A13 &! A12 &! A11 &! A10)

MEMCS#=CS8

BHE#=SIZ0 &! A0

4 软件设计

4.1 MC68332 的硬件初始化程序设计

MC68332 的复位向量和初始化程序驻留在ROM中,在系统复位后MC68332从异常情况向量表中取出向量后在管理方式下执行初始化程序来定义相关地址、常数及其他参数。首先进行硬件初始化,依次初始化全局寄存器、各模块和外部设备等。MC68332地址空间的分配如下: 寻址空间的$000000 ~$0FFFFF分配为ROM存储区, $100000~$13FFFF 为SRAM 存储区, $200000~$23FFFF为显示存储区, $240000~$FFDFFF分配给其他外设(如串行通信模块的MC68HC681等) 。通过设备BAR 寄存器, 把片上RAM 定位在$FFE000~$FFE7FF。通过设置SIM 模块的MCR 寄存器,把$FFF000~$FFFFFF 存储区作为模块寄存器区。硬件初始化完成后,MC68332通过设置用户堆栈指针地址USP、状态寄存器SR以及程序计数器PC将控制权交给应用程序。应用程序一般工作在用户方式下。本文中液晶显示系统使用的液晶屏为SHARP 公司的LM64P83L ,STN单色双屏结构640 ×480 点阵。限于篇幅,只列出SED1353硬件初始化程序清单。

SED1353 初始化程序:

INCLUDE SED1353. ASM

INIT MOVE. B # $00 ,AUX00 ;设置为正常工作模式

MOVE. B # $44 ,AUX01 ;设置关显示,双屏结构,不屏蔽XSCL ,8 位LCD 数据, 16 位显存结构

MOVE. B # $27 ,AUX02 ;设置显示域宽度LBCB8:0=1×640/ 16-1=39 (十进制)

MOVE. B # $04 ,AUX03 ;设置正常运行方式,单色无灰度显示,1位/像素

MOVE. B # $EF ,AUX04 ;设置扫描行数, TDLC7:0=480/ 2-1=239(十进制)

MOVE. B # $00 ,AUX05 ;使用默认值,每帧WF 翻转一次

MOVE. B # $00 , AUX06 ; 设置上半屏显示首址为$220000

MOVE. B # $00 ,AUX07

MOVE. B # $80 ,AUX08 ;设置下半屏显示首址为$224B00 (使用连续地址)

MOVE. B # $25 ,AUX09

MOVE. B # $00 ,AUX0C ;使用默认非显示周期[!--empirenews.page--]

MOVE. B # $00 ,AUX0D ;不使用虚拟屏

ORI.B # $90 ,AUX01 ;开显示和LCDE 使能不需要设置的寄存器会被自动旁路

4.2 汉字显示程序的设计

在对系统进行完正确的初始化后将ROM 中的字模数据送到SED1353显示存储器,就可以使液晶显示屏显示出汉字。显示汉字需要指定其坐标位置,坐标对应该汉字模入口地址。在显示汉字界面前, 首先清屏。由于本文中显示存储器结构为16 位,所以X 方向以字为单位(偶数地址对齐) 。故规定显示区左上角坐标为(0 ,0) ,右下角坐标为(39 ,479) 。每个汉字都有唯一的代码,所以在调用字模数据前需要对汉字的代码进行解码,对坐标进行解析。

字模入口地址=Y坐标×80 + X 坐标×2 ;字模首地址=汉字代码×32 + 字库首地址以在坐标(30 ,148) 处显示代码为24 的16×16汉字为例,程序如下:

(1) 清屏子程序

MOVE. L # $220000 ,A4; 赋当前显示首址

BRA CLRLCD ;调用清屏子程序

CLRLCD CLR. LD3

CLR. LD4

MOVE. W # 480 ,D3;需要清480 行

LOOP1  MOVE. W # 40 ,D4;每行40个字

LOOP2  MOVE. W # $0000 , (A4) + ;清零

SUB. W # 1,D4

BNE LOOP2

SUB. W # 1,D3

BNE LOOP1

RTS

(2) 汉字显示子程序

MOVE. L # 0 ,A1 ;清A1 ,A2

MOVE. L  # 0 ,A2

CLR. L  D1 ;清D1~D4

CLR. L  D2

CLR. L  D3

CLR. L  D4

MOVE. B  # 30,D2; 赋坐标值

MOVE. W # 148,D3

BSR ALXY; 调坐标解析子程序

MOVE. LD3 ,A1 ;坐标的绝对地址送出

MOVE. W # 24, D4 ;赋代码值

BSR  DECODE;调解码子程序

MOVE. L  D4,A2;字模首址送出

LOOP  MOVE. W (A2) + , (A1)

ADD. L  # $50,A1 ;字模数据写入换行

SUB. B  # 1 ,D1

BNE LOOP

END

DECODE  MULU  # 32,D4

ADD. W # TAB16,D4

MOVE. B  # 16,D1 ;循环16 次

RTS

... .

ALXY MULU  # $50 ,D3

MULU  # $2 ,D2

ADD. W D2 ,D3

ADD. L  # $220000 ,D3

RTS

TAB16  ......

******设“马”汉字代码为24 ******

DC. W $0020 , $3FF0 , $0020 , $0820 ;马

DC. W $0820 , $0820 , $0820 , $0824

DC. W $0FFE , $0004 , $0024 , $FFF4

DC. W $0004 , $0004 , $0028 , $0010

...

5  结束语

32 位嵌入式处理器的软件开发以C语言为主,通常情况下用汇编语言编写与硬件有关的程序,高级语言C编写主程序实现某些复杂算法,若再配上实时多任务任务操作系统更是如虎添翼。本文所述方法可移植性强,稍作修改可应用于摩托罗拉MC68K系列嵌入式系统;选用的SED1353具有直接管理128K大容量显示缓冲区的能力,编程简单、显示速度快和执行效率高;可支持多种单色/ 彩色液晶显示屏,可以实现数据显示、绘制图表以及翻转等功能,具有良好的显示界面,提高了系统的可操作性,值得在智能化仪器仪表中推广。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

嵌入式处理器是一种特殊的计算机处理器,它被设计用于嵌入到各种设备和系统中,以实现特定的功能。由于其低功耗、高性能和可靠性等特点,嵌入式处理器在许多领域都有广泛的应用,如汽车电子、工业控制、医疗设备等。本文将对嵌入式处理器...

关键字: 嵌入式处理器 嵌入式系统

2023年10月10日, [恩智浦创新技术论坛] 在深圳湾万丽酒店举行,众多工业、物联网、新能源和医疗等行业的企业出席论坛,深入交流市场趋势与行业洞察,一同讨论如何协同面对市场的机遇与挑战,共同促进未来市场的发展。米尔电...

关键字: NXP 嵌入式处理器

据业内信息报道,昨天 AMD 在 Embedded World 上宣布了其第四代 EPYC 嵌入式处理器,该处理器采用其 Zen 4 架构,旨在云和企业计算以及工厂车间工业边缘服务器中的嵌入式网络、安全、防火墙和存储。

关键字: Zen 4 AMD EPYC 嵌入式处理器

摘 要 :智能电网以优良的性能服务于国民生产,主要依靠接入电力系统设备间的网络通信。便携式电力设备的网络通信性能测试对于智能电网的运行具有重要意义。以嵌入式处理器为核心,提出了一种智能电网设备网络通信性能的便携式测试装置...

关键字: 智能电网 嵌入式处理器 WinCE操作系统 通信 便携式测试装置 人机接口

随着对高处理能力、实时多任务、网络通信、超低功耗需求的增长,传统8位机已远远满足不了新产品的要求,高端嵌入式处理器已经进入了国内开发人员的视野,并在国内得到了普遍的重视和应用。

关键字: 32位 ARM 嵌入式处理器 调试技术

技嘉官网现出现了两款新的迷你PC产品,GB-BSRE-1505和GB-BSRE-1605,这两款型号是面向商用的,一般会是公司采购,所以并不像消费者产品那么紧跟时代潮流,这两款新的迷你PC用的处理器还是AMD的第一代锐龙...

关键字: 技嘉 pc 锐龙 嵌入式处理器

  车道偏离报警和自动泊车等汽车应用将成为今年嵌入式视觉系统的主要增长动因,嵌入式视觉系统是一项赋予机器“视觉”并通过计算机视觉软件解释数据的技术。   汽车发动

关键字: 嵌入式处理器 工厂自动化 嵌入式视觉系统 工业安防

智能锁是指区别于传统机械锁,在用户识别、安全性、管理性方面更加智能化的锁具,涵盖指纹锁、电子密码锁、电子感应锁、联网锁、遥控锁等具体类型锁具产品。 智能门锁的优点: 便利性

关键字: 单片机 嵌入式处理器 智能锁

嵌入式 处理器简介 嵌入式处理器是嵌入式系统的核心,是控制、辅助系统运行的硬件单元。范围极其广阔,从最初的4位处理器,目前仍在大规模应用的8位单片机,到最新的受到广泛青睐的32位,64位嵌入式CPU。 自微处理器的问世以...

关键字: 嵌入式处理器 嵌入式系统 微控制器 嵌入式微处理器
关闭
关闭