ARM小系统的外围接口电路设计.docx
《ARM小系统的外围接口电路设计.docx》由会员分享,可在线阅读,更多相关《ARM小系统的外围接口电路设计.docx(45页珍藏版)》请在冰豆网上搜索。
![ARM小系统的外围接口电路设计.docx](https://file1.bdocx.com/fileroot1/2023-4/23/931f277c-34c7-4756-8d32-199daf1f85e9/931f277c-34c7-4756-8d32-199daf1f85e91.gif)
ARM小系统的外围接口电路设计
ARM小系统的外围接口
电路设计
指导老师:
刘勃
设计者:
陈恩峰
2004/6/10
华中科技大学电信系
摘要
AT91M40800是ARM系列芯片中的一款RISC处理器。
其特点是功能强大,成本低,耗能省,适应嵌入式系统设计发展的趋势。
本文是在基于AT91M40800为核心的小系统的基础上,设计了LCD,PS2,RS232,USB等外部接口,以形成一个完整的ARM小系统。
论文首先对ARM系列处理器作了介绍。
然后根据对AT91M40800引脚的功能分析,分别画出各接口电路的电路设计图,并对设计的工作原理进行详细介绍,对电路图进行总体设计。
最后总结了论文的成果和不足。
【关键字】ARM,接口电路,AT91M40800,LCD,PS2,USB,RS232。
ABSTRACT
TheAT91M40800isakindofRISCprocessorsinARMserieschips.Itischaracteristicsforthemightinessofitsfunctionandthelowcostandlowdepletedanditmeetswiththedevelopmentoftumbleinsystemtransfer.
ThispaperisonthefoundationofthesmallsystemwhichbasedonAT91M40800.AlongwiththeLCDport,PS2port,RS232port,USBportandsoon,theytogetherformafullARMsystem.
Inthispater,theprocessorsofARMseriesisfirstlyintroduced.ThenfinishthepreliminaryschemeofcircuitaccordingtotheanalysisoftheAT91M40800’spinoutdiagram.Andhowtofinishthedesignispresented,thendesignthecircuitdiagramoverallly.Finally,theachievementandinsufficientofthepaperissummarized.
【Keywords】ARM,electrocircuitofport,AT91M40800,LCD,PS2,USB,RS232.
第一章.ARM系统简介:
1.1ARM介召:
ARM(AdvancedRISCMachines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。
技术具有性能高、成本低和能耗省的特点。
适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。
ARM将其技术授权给世界上许多著名的半导体、软件和OEM厂商,每个厂商得到的都是一套独一无二的ARM相关技术及服务。
利用这种合伙关系,ARM很快成为许多全球性RISC标准的缔造者。
目前,总共有30家半导体公司与ARM签订了硬件技术使用许可协议,其中包括Intel、IBM、LG半导体、NEC、SONY、菲利浦和国民半导体这样的大公司。
至于软件系统的合伙人,则包括微软、升阳和MRI等一系列知名公司。
ARM体系的发展历史
CISC体系由于指令集庞大,指令长度不固定,指令执行周期有长有短,使指令译码和流水线的实现在硬件上非常复杂,给芯片的设计开发和成本的降低带来了极大困难。
针对这些明显的弱点,美国加州大学伯克利分校的Patterson教授领导的研究生团队设计和实现
了“伯克利*RISCI”处理器,他们在此基础之上又发展了后来SUN公司的SPARC系列RISC处理器,并使得采用该处理器的SUN工作站名振一时。
与此同时,斯坦福大学也在RISC研究领域取得了重大进展,开发并产业化了MIPS系列RISC处理器(后来被SGI公司收购,并广泛用于SGI的图形工作站)。
被这两种RISC处理器所取得的巨大成功所鼓舞,英国的Acorn计算机公司在1983到1985年之间也开发出了第一代ARM处理器,当时RISCARM还只是AcornRISCMachine的缩写。
之后于1990年,公司又把名字改为简单的ARMlimited,并且是AdvancedRISCMachine(先进RISC机器)的缩写。
经过这么多年的发展,ARM已经形成了如下系列的大家族。
表中的核心Core包括处理器核ProcessorCore(ARM7TDMI,ARM8,StrongARM,ARM9TDMI&ARM10TDMI)和CupCore(其它)。
CupCore实际上是在各种相应的处理器核的基础之上,集成和优化了Cache和MMU内存管理单元后形成的,它能以单独的CPU芯片提供给用户更高的性能。
而各种处理器核(ProcessorCore)则可用软IP模块,或者硬IP模块的方式嵌入
到各种用户不同的应用之中,形成相应的SOC(SystemOnaChip)系统芯片,这不仅节省了功耗和成本,还最大限度的节省了用户的开发时间。
另外特别值得一提的是STONGARM,它原来是DEC公司和ARM公司合作开发的。
1998年,Intel收购了DEC的半导体部门。
此后,Intel又开发和生产出SA110,SA1100,SA1110等一系列STRONGARM高性能嵌入
式处理器。
特别是SA1110,本身就是一个非常典型的SOC芯片,已经把液晶控制器、外设接口(USB,IRDA,UART,PCMCIA)音频编解码器Codec等和CPU集成到了同一个芯片内,可以很方便地嵌入于各种掌上设备。
产品介绍
ARM提供一系列内核、体系扩展、微处理器和系统芯片方案。
由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行(理论上如此)。
典型的产品如下。
①CPU内核
--ARM7:
小型、快速、低能耗、集成式RISC内核,用于移动通信。
--ARM7TDMI(Thumb):
这是公司授权用户最多的一项产品,将ARM7指令集同Thumb扩展组合在一起,以减少内存容量和系统成本。
同时,它还利用嵌入式ICE调试技术来简化系统设计,并用一个DSP增强扩展来改进性能。
该产品的典型用途是数字蜂窝电话和硬盘驱动器。
--ARM9TDMI:
采用5阶段管道化ARM9内核,同时配备Thumb扩展、调试和Harvard总线。
在生产工艺相同的情况下,性能可达ARM7TDMI的两倍之多。
常用于连网和顶置盒。
②体系扩展
--Thumb:
以16位系统的成本,提供32位RISC性能,特别注意的是它所需的内存容量非常小。
③嵌入式ICE调试
由于集成了类似于ICE的CPU内核调试技术,所以原型设计和系统芯片的调试得到了极大的简化。
④微处理器
--ARM710系列,包括ARM710、ARM710T、ARM720T和ARM740T:
低价、低能耗、封装式常规系统微型处理器,配有高速缓存(Cache)、内存管理、写缓冲和JTAG。
广泛应用于手持式计算、数据通信和消费类多媒体。
--ARM940T、920T系列:
低价、低能耗、高性能系统微处理器,配有Cache、内存管理和写缓冲。
应用于高级引擎管理、保安系统、顶置盒、便携计算机和高档打印机。
--StrongARM:
性能很高、同时满足常规应用需要的一种微处理器技术,与DEC联合研制,后来授权给Intel。
SA110处理器、SA1100PDA系统芯片和SA1500多媒体处理器芯片均采用了这一技术。
--ARM7500和ARM7500FE:
高度集成的单芯片RISC计算机,基于一个缓存式ARM732位内核,拥有内存和I/O控制器、3个DMA通道、片上视频控制器和调色板以及立体声端口;ARM7500FE则增加了一个浮点运算单元以及对EDODRAM的支持。
特别适合电视顶置盒和网络计算机(NC)。
1.2外部接口概述
作为小系统的外部接口,其目的是方便用户进行操作和实现系统的必要功能。
外部接口主要包括LCD接口,PS2接口,RS232接口,USB接口等。
其中,LCD接口功能是连接显示设备,以显示主机和用户操作的信息。
PS2接口是连接键盘,鼠标等设备,方便主机和用户之间的人机交流。
USB接口和RS232接口是实现主机与外部的通讯功能。
1.3课题任务
本课题的任务是基于ARM小系统,设计LCD,PS2,RS232,USB等外部接口,以实现各种功能。
第二章.ARM小系统的结构:
本系统采用Atmel公司的ARM7系列AT91M40800作为处理器。
外部接口包括LCD接口,PS2接口,RS232接口,USB接口。
本系统的主要结构框图如下:
本设计中LCD由内置T6963C控制器的液晶显示模块VPG12864T-SC-HT-LED03完成.
PS2键盘的设计由专用键盘芯片BC7281实现.
RS232口选用MAX232EESE芯片.
USB口采用PDIUSBD12芯片.
本系统选用的主芯片为AT91M40800,如图:
第三章.外围接口的分布设计
3.1LCD的原理与接口设计
3.1.1LCD的分类:
从显示技术上来看.LCD可分为简单矩阵(SM)和有源矩阵(PM)两大类,并经过了扭曲向列(TN-LCD),超扭曲向列(STN-LCD),薄膜晶体管向列(TFT-LCD)三个重要发展阶段.目前,.TFT-LD成为液晶显示器的主流产品.
TFT-LCD的显示原理是基于液晶的透光率随其所加的电压大小而变化的特性.当光通过上偏振片后,变成线性偏振光.偏振方向和偏振偏振动方向一致.当光通过液晶层时,由于液晶折射,线性偏振光被分解成两束光.又由于这两束光的传播速度不同,因而当两束光合成后,必然使偏振光的振动方向发生变化,当光到达下偏振片时,光轴振动方向被扭曲了90度,且与下偏振片的振动方向保持一致.这样,光线通过下偏振片时形成亮场.加上电压以后,液晶在电场作用下取向,扭曲消失,这时,通过上偏振片的线性的偏振光,在液晶层不再旋转,无法通过下偏振片而形成暗场.可见液晶本身不发光,在外光源的调制下,才能显示,在整个显示过程中,液晶起到一个电压控制光阀作用:
TFT-LCD的工作原理是漏电极与ITO象素电极连接,源电极与源电极连接,栅极与栅线连接,当栅极正向电压大于施加电压时,漏源电极导通;当正向电压等于0或负电压时,漏源电极断开.
3.1.2模块介绍:
设计采用T6963C为控制器的VPG12864T-SC-HT-LED03液晶模块.
1.T6963C
T6963C的最大特点是具有独特的硬件初始值设置功能,显示驱动所需的参数如占空比系数,
驱动传输的字节数/行及字符的字体选择等均由引脚电平设置,这样T6963C的初始化在上电时就已经基本设置完成,软件操作的主要精力就可以全部用于显示画面的设计上了。
T6963C控制器参数描述:
名称
符号
条件
范围
单位
电源电压
VDD
Ta=25℃
-0.3~7.0
V
输入电压
VIN
Ta=25℃
-0.3~VDD+0.3
V
工作温度
Topr
-10~70
℃
存储温度
Tstg
-55~125
℃
2.VPG12864T-SC-HT-LED03
本模块所用液晶的型号为VPG12864T-SC-HT-LED03。
液晶屏参数描述:
点阵数
128×64
点尺寸
0.39×0.55
像素尺寸
0.44×0.60
视屏尺寸
62.0×44.0
模块尺寸
78.0×70.0
T表示控制模块为T6963C控制器,
SC表示无需外部提供负压驱动。
(注:
模块应用一般有三种电源:
逻辑电源,液晶驱动电源,背光电源。
如果所选用的液晶模块是双电源(VDD/V0)供电的就需要提供一个负电压(即液晶驱动电压V0/VEE),用以调节对比度,接在液晶模块的V0引脚上。
如果所选用的液晶模块是单电源(型号里有SC字母或有特别说明的)供电的,V0悬空(或详见管脚说明)即可使用。
对于这类模块,因为内部的液晶驱动电压转换电路是带温度补偿的,所以当工作温度变化时,无须手动调节液晶驱动电压。
)
HT表示此液晶为宽温型,宽温型液晶模块的工作温度范围在-20C+70C,贮存温度-30C+80C。
LED03表示此液晶的背光方式为边背光方式。
(LED04指底背光方式)。
引脚定义:
引脚号
名称
说明
1
FG
接外壳地
2
Vss
电源地
3
Vdd
电源+5V
4
Vo
LCD工作电源(此型号不使用)
5
WR
写信号,低电平有效
6
RD
读信号,低电平有效
7
CE
片选信号,低电平有效
8
C/D
命令/数据选择
9
RESET
复位
10-17
D0-D7
数据线
18
FS
内置字型选择6*8(H)或8*8(L)
19
LED+
背光电源正
20
LED-
背光电源负
注:
背光电源应加负电压,所以LED+接地,LED-接+5V(可串联一小电阻).
D0-D7:
T6963C与MPU接口的数据总线,三态;
/RD,/WR:
读、写选通信号,低电平有效,输入信号;
/CE:
T6963C的片选信号,低电平有效;
C/D:
通道选择信号,1为指令通道,0为数据通道;
/RESET,/:
/RESET为低电平有效的复位信号,它将行、列计数器和显示寄存器清零,关显示;
VO:
此种LCD模块不用
A,K:
背光
VSS:
接地
FS:
用于选择字体,8*8,8*6
VPG12864T
LCD背光设计:
本液晶模块是带背光的型号,为LED03(即边背光)方式,供电为3.8~4.3V直流电源,严格限制5V电源直接供电,否则不仅会增加功耗,更会增加损坏背光灯的可能性和缩短液晶模块的使用寿命。
推荐电压如下:
当背光方式为LED03(即边背光)时,VLED4.1V。
LED背光工作电压4.0~4.3V条件下的电流值(表四,测试条件:
温度20℃)
LED背光电压与电流的关系
电压(V)
背光电流(mA),精度:
±10mA
4.0
60
4.1
80
4.2
110
4.3
130
3.1.3设计原理及电路图:
简要原理:
把内置T6963C控制器的液晶显示模块作为存储器或I/O设备直接挂在计算机的总线上。
模块的数据线接计算机的数据总线上,片选及寄存器选择信号线由计算机的地址总线提供,读和写操作由计算机的读写操作信号控制。
T6963C具有独特的硬件初始值设置功能,显示驱动所需的参数如占空比系数,驱动传输的字节数/行及字符的字体选择等均由引脚电平设置(具体的要看说明书),这样T6963C的初始化在上电时就已经基本设置完成,软件操作的主要精力就可以全部用于显示画面的设计上了。
3.1.4编程控制
T6963C液晶控制器具有内部16位地址线,可管理64KB的内部RAM.T6963C控制器支持图形和字符,以及两者合成显示.可通过改变内部首地址指针位置设置图形的字符显示区的位置,也可以通过此功能实现滚屏.
LCD通过一系列的命令来控制,每个命令可包含0-2个数据,带数据的命令必须选送数据再送命令.发送命令例程如下:
voidLCD_DelayIt(unsignedintDelay)
{
unsignedinti;
for(i=0;i<=Delay;i++);
}
/********************************************/
#defineLCD_Delay215
#defineLCD_Delay
#defineLCD_BASE0x40020000//由片选线及片选寄存器决定,
#defineLCD_Delay10
#defineLCD_Delay250
#defineLCD_Command((volatileunsignedchar*)(LCD_BASE|0x100))
//0x100也可为其它值,只要保P8(即C/D)为’1’即可.下面同理
#defineLCD_Data((volatileunsignedchar*)(LCD_BASE|0x0))
voidLCD_WriteControlByte(unsignedcharNum,unsignedcharAdd0,unsignedcharAdd1,unsignedcharCommand)
{
unsignedi;
switch(Num)
{
case2:
i=LCD_Delay2;
while(i&&(((*LCD_Command)&0x03)!
=0x03))i--;
*LCD_Data=Add0;//写入数据1
LCD_DelayIt(LCD_Delay);
//noneedbreakhere
case1:
i=LCD_Delay2;
while(i&&(((*LCD_Command)&0x03)!
=0x03))i--;
*LCD_Data=Add1;//写入数据2
LCD_DelayIt(LCD_Delay);
}
i=LCD_Delay2;
while(i&&(((*LCD_Command)&0x03)!
=0x03))i--;
*LCD_Command=Command;//写入命令
LCD_DelayIt(LCD_Delay);
}
LCD的控制其实就是向模块写控制命令,如关闭光标的命令为0x9d,无数据则其控制函数为:
voidLCD_CloseCursor(void)
{
LCD_WriteControlByte(0,0,0,0x9d);
}
3.2PS2的原理与接口设计
3.2.1PS2键盘原理及连接
PS/2协议最初由IBM公同制定,目前广泛应用于鼠标,键盘,条码扫描器等设备,其接口定义如下:
PS/2接口有主从之分,主设备采用Female插座,从设备采用Male插座.时钟与数据线都是开漏模式,需外接上拉电阻.且一般放在主设备上.主从之间数据可以双向同步串行传输,主设备随时可以将时钟线拉低禁止通信过程.PS2传输一般时钟频率都在10~20KHZ.
3.2.2BC7281
本设计采用键盘控制芯片BC7281.
简述:
BC7281芯片是8位/16位LED数码管显示及键盘接口专用控制芯片.BC7281芯片可以连接最多64键(8*8)的键盘矩阵.内部具有去抖动功能,键盘为互锁式,扫描到的键值将被锁存在内部的锁存器内直至被读出.BC7281芯片内部共有25个寄存器,包括16个显示寄存器和9个特殊(控制)寄存器.所有的操作均通过对这25个寄存器的访问完成.BC7281采用高速二线接口与CPU进行通讯,只占用很少的I/O口资源和CPU时间.
特点
可驱动16数码管显示或128只独立LED
具有64键键盘接口,内含去抖动功能
独具光柱译码方式,可独立控制两条64段光柱显示
段寻址功能便于控制独立LED
各位可独立控制闪烁属性,BC7281闪烁速度可调
段驱动极性及移位脉冲时序均可控,可配合各种形式的驱动电路
键盘部分具有键值锁存功能
内部显示寄存器和控制寄存器的内容均可读出
2线高速串行接口
引脚说明:
3.2.3BC7281的连接与电路图:
BC7281与MCU之间通讯采用2线高速串行接口,二根连线分别是数据线DAT和同步时钟线CLK,其中DAT为双向数据传输线,BC7281既用该线从MCU接受数据,也用该线向MUC发送数据.BC7281的DAT引脚为漏极开路输出结构,使用时需要在该线上加一20k欧的上拉电阻.CLK引脚为串行接口的同步时钟,由MCU控制,下降沿有效.
串行接口数据宽度为8位,两个字节为一组,构成一条完整的指令.第一个字节为命令字,第二个字节为数据.串行接口数据结构如下:
BC7281采用外接的RC振荡电路为显示和键盘扫描提供时钟驱动,外接元件的典型参数为R=3.3K,C=20pF.在Vcc=5V的情况下,振荡电路的频率约为4.5MHz.BC7281的CLK0端为内部振荡电路输出端,一般此脚悬空.
芯片的RST引脚为复位端.因为BC7281的内部有上电复位电路,因此在一般情况下不需要特殊的复位电路,只需要将RST引脚直接连接到VCC端就可以了.
BC7281与MUC的接口公需要三根线,数据线DAT,时钟线CLK和按键指示KEY,其中CLK和KEY引脚分别为输入和输出引脚,而DAT脚则为双向口,其内部为OPENDARAIN结构,需要外接一20K欧的上拉电阻,以使其能可靠地输出高电平.
BC7281需要外接移位寄存器构成段驱动电路.
BC7281最多可以连接64个按键,按8*8矩阵排列,矩阵地'行'连接到BC7281地位驱动DIG0-DIG7,矩阵地'列'连接到第0-7位显示地段驱动以为寄存器的输出.当使用键盘功能时,DIG0-DIG7上应加以100K的下拉电阻,且8根引脚必须都接,即使所用的键比较少时,也不能省略.
矩阵中各键键值参看下表:
3.2.4电路原理图及应用程序:
电路原理图:
应用程序:
voiddelay(unsignedchar);//短暂延时
voidwrite7281(unsignedchar,unsignedchar);//写入到BC7281
unsignedcharread7281(unsignedchar);//从BC7281读出
voidsend_byte(unsignedchar);//发送一个字节
unsignedcharreceive_byte(void);//接收一个字节
//***变量及I/O口定义***
unsignedcharkey_number;
unsignedinttmr;
sbitclk=P3^5;//clk连接于P3.5
sbitdat=P3^7;//dat连接于P3.7
sbitkey=P3^3;//key连接于P3.3(INT1)
//***主程序***
main()
{
for(tmr=0;tmr<0xffff;tmr++);//等待BC7281完成复位
write7281(0x12,0x80);//初始化BC7281为164模式,不反相
while
(1)
{
while(key);//等待按键
key_number=read728x(0x13);//读键值write728x(0x15,0x10+(key_number&0