发布时间:2025-10-25 23:26:32 点击量:
pg电子游戏,pg电子接口,pg电子官网,pg电子试玩,pg电子app,pg电子介绍,pg电子外挂,pg游戏,pg电子游戏平台,pg游戏官网,PG电子,麻将胡了,PG电子试玩,PG模拟器,PG麻将胡了,pg电子平台,百家乐,龙虎,捕鱼,电子捕鱼,麻将胡了2,电子游戏
第5章 ARM接口设计技术 本章主要内容: 键盘接口 LED显示器接口 LCD显示器接口 触摸屏接口 通讯接口 中断接口 A/D和D/A转换器接口 ARM的JTAG接口 芯片S3C44B0XⅠ 本章主要基于芯片S3C44B0X,介绍其多个接口。S3C44B0X是基于ARM7TDMI的体系结构,是ARM公司最早为业界普遍认可并且赢得最广泛应用的处理核。芯片S3C44B0X具有71个通用多功能输入输出引脚,这些I/O口的应用是S3C44BOX处理器的基础应用,分别包含在如下7组端口中: 1个10位输出端口〔端口A〕; 1个11位输出端口(端口B); 1个16位输入/输出端口(端口C); 2个8位输入/输出端口(端口D和G); 2个9位输入/输出端口(端口E和F)。 芯片S3C44B0XⅡ 每组端口都是多功能口,需要用软件对端口配置寄存器PCONn来设置满足不同系统和设计的需要,在运行程序之前必须先对每一个用到的引脚功能进行设置。如果某些引脚的复用功能没有使用,可以将该引脚设置成I/O口。 在一般的应用中,PA作为地址线使用;PB作为bank选择线和SDRAM的接口信号线使用;PC可以作为数据线、IIS接口或LCD数据线等使用;在系统具备LCD的情况下,PD主要作为LCD的信号线使用;PE可以作串口信号线和定时器输出使用;PF和PG则是多功能I/O口。 键盘概述 计算机的键实际上就是开关,制造这种键的方法是多种多样的,以下是几种常用的按键: 机械式按键 电容式按键 薄膜式按键 霍耳效应按键 用ARM芯片实现键盘接口Ⅰ 本应用实例中,要与4X4的矩阵键盘接口,采用节省口线的“行扫描法”方法来检测键盘,这样只需要8根口线,在此选取PF口作为检测键盘用端口,并设定PF0 –PF3为输出扫描码的端口,PF4--PF7为键值读入口。 用ARM芯片实现键盘接口Ⅱ 矩阵键盘按键的识别方法,此方法分两步进行: ①识别键盘哪一行的键被按下:让所有行线均为低电平,检查各列线电平是否为低,如果有列线为低,则说明该列有键被按下,否则说明无键被按下。 ②如果某列有键被按下,识别键盘哪一行的键被按下:逐行置低电平,并置其余各行为高电平,检查各列线电平的变化,如果列电平变为低电平,则可确定此行此列交叉点处按键被按下。 行扫描法获取键值的程序设计Ⅰ 1. 寄存器设置 接口中利用了PF口的相关寄存器,PF口的寄存器有3个:PCONF ,PDATF和PUPF。 (1)设置PCONF寄存器 需要设定PF0-3为输出口,PF4 - 7为输入口,因此,在端口工作之前设置: rPCONF= 000 000 000 00 01 01 01 01 B=0x55; (2)设置PDATF寄存器 PF0-3作为输出口输出扫描码时,可采用语句: rPDATF=Oxf0; //PF0-3全写入0 PF4-7作为输入口读入键值时,采用语句: Keyval=(rPDATF0xf0)4; (3)设置PUPF寄存器 设置内部上拉电阻的语句为: rPUPF=0x00; //使能PF0-7的内部上拉电阻 行扫描法获取键值的程序设计Ⅱ 2.编写键盘扫描程序 LED显示器接口概述Ⅰ LED(Light Emitting Diode)常称为七段发光二极管, 在专用的微型计算机系统中,特别是在嵌入式控制系统中, 应用非常普遍。它价格低廉、体积小、功耗低,而可靠性又很好,因此,从单板微型机、袖珍计算机到许多微型机控制系统及数字化仪器都用LED作为输出显示。 LED显示器接口概述Ⅱ 在多个LED显示电路中,通常把阴(阳)极控制端接至一输出端口,我们称它为位控端口;而把数据显示段接至一个输出端口,我们称这个端口为段控端口。段控端口处应输出十六进制数的7段代码。 为了将一个4位二进制数(可能为一个十六进制数,也可能是一个BCD码)在一个LED上显示出来,就需要将4位二进制数译为LED的7位显示代码。要完成译码功能,可以采用两种方法: 一种方法是采用专用芯片,可以实现对BCD码的译码,但不能对大于9的二进制数译码。 另一种常用的办法是软件译码法。在软件设计时,将0到F共16个数字(也可以为0到9)对应的显示代码组成一个表。 用ARM芯片实现LED显示接口Ⅰ 1.接口电路 用ARM芯片实现LED显示接口Ⅱ 2.初始化程序如下。 (1)设置PCONF、PCONG寄存器,由于需要设定端口F、G为输出口,因此,在端口工作之前设置: rPCONF= 001 001 001 01 01 01 01 01 B=0x12555; rPCONG= 01 01 01 01 01 01 01 01 B=0x5555; (2)设置PUPF、PUPG寄存器,设置内部上拉电阻的语句为: rPUPF=0x00; //使能PF0-7的内部上拉电阻 rPUPG=0x00; //使能PG0-7的内部上拉电阻 用ARM芯片实现LED显示接口Ⅲ 3. 7段数码LED编程 LCD显示器接口概述 液晶显示是一种被动的显示,它不能发光,只能使用周围环境的光。 基本原理是通过给不同的液晶单元供电,控制其光线的通过与否,从而达到显示的目的。 LCD有三种显示方式:反射型,透射型和透反射型。 市面上出售的LCD有两种类型: 一种是带有驱动电路的LCD显示模块,这种LCD可以方便地与各种低档单片机进行接口; 另一种是LCD显示屏,没有驱动电路,需要与驱动电路配合使用 LCD控制器 LCD 控制器用来把定位在系统存储器中的视频缓冲区的LCD图象数据传输到LCD驱动器,并产生必须的LCD控制信号 。 LCD应用实例Ⅰ 1.LCD接口电路 LCD应用实例Ⅱ 2.I/O口LCD功能设置 通常采用S3C44BOX的PC口和PD口作为LCD驱动接口,因此需要设置PC口工作在第3功能状态和PD口工作在第2功能状态,设置对应I/O口控制寄存器的语句: rPCONC = 00 00 00 00 00 00 00 00 11 11 11 11 00 00 00 00B = OxO00Off00; rPUPC = 0x 00; //上拉使能 rPCOND= Oxaaaa; rPUPD= 0x 00; LCD应用实例Ⅲ 3. LCD初始化程序 触摸屏的工作原理 触摸屏按其工作原理的不同可分为电阻式触摸屏、表面声波触摸屏、红外式触摸屏和电容式触摸屏几种。 最常见的是电阻式触摸屏,其屏体部分是一块与显示器表面非常配合的多层复合薄膜。触摸屏工作时,上下导体层相当于电阻网络。当某一层电极加上电压时,会在该网络上形成电压梯度。如有外力使得上下两层在某一点接触,则在另一层未加电压的电极上可测得接触点处的电压,从而知道接触点处的坐标。 触摸屏的驱动芯片ADS7843Ⅰ S3C44BOX通过端口G模拟串行的SIO接口与触摸屏专门的控制芯片ADS7843进行数据传输,来完成对触摸屏触摸位置坐标的读取。 ADS7843要完成两件事: (1)是完成电极电压的切换; (2)是采集接触点处的电压值,并进行A/D转换。 触摸屏的驱动芯片ADS7843Ⅱ 1. ADS7843引脚配置及功能 触摸屏的驱动芯片ADS7843Ⅲ 2. ADS7843的控制字 触摸屏的接口设计Ⅰ 1 .触摸屏的驱动芯片ADS7843典型接口 触摸屏的控制采用专用芯片,专门处理是否有笔或手指按下触摸屏,并在按下时分别给两组电极通电,然后将其对应位置的模拟电压信号经过A/D转换送回处理器。S3C44B0选取PG口与ADS7843接口,共使用PG2 - PG7的6条口线,也可以选择其他的I/O口,但注意不要与I/O口上已经设定的功能相冲突.其中,X+、Y+、X-、Y-引脚直接与触摸屏的相应管脚相连。 触摸屏的接口设计Ⅱ 2 编程实现 利用连接好的电路设置PCONG寄存器如下: rPCONG = Ox015f; 其中,PENIRQ最好加上内部上拉,设置为: rPUPG&=Ox80。 (1)读取触摸点坐标程序: 编程采用固定参考电压模式,因此SER/DFR=1。首先检测PENIRQ是否为低电平,如果为低电平,则认为有接触;否则认为触摸屏没有接触。利用软件模拟DIN, DOUT和DCLK上的3线串行传输时序,将读取的x或Y坐标数值的控制字串行送入ADS7843,然后再串行读出坐标值。最后将X和Y轴坐标值送串口显示即可。 (2)送控制字并读取结果子程序。 串行通信概述 串行数据传送模式: 单工 半双工 全双工 串行通信方式: 同步通信 异步通信 RS-232C串行接口Ⅰ 1.RS-232C接口规格 RS-232C串行接口Ⅱ 2. RS-232C 接口信号。 实际应用 中,并不是 每只管脚 信号都用到 S3C44BOX内部集成的UART S3C44B0X UART单元提供了两个异步串口(SIO),每个SIO可以操作在中断模式或DMA模式,支持波特率最大为115.2kbps, 每个SIO通道包含都有一个16字节的接收与发送FIFO缓冲区。 每个UART模块包含以下几个部件:波特率发生器,发送器,接收器和控制单元。 UART操作 数据发送 数据接收 动流控制(AFC) 非自动流控制(通过软件控制nRTS和nCTS) 调制解调器接口 中断/DMA请求产生器 S3C44BOX的每个UART都有7个状态信号:接收FIFO/缓冲区数据准备好、发送FIFO/缓冲区空、发送移位寄存器空、溢出错误、奇偶校验错误、帧错误和中止,所有这些状态都由对应的UART状态寄存器(UTRSTATn/UERSTATn)中的相应位来表现。 当接收器要将接收移位寄存器的数据送到接收FIFO,它会激活接收FIFO满状态信号,如果控制寄存器中的接收模式选为中断模式,就会引发接收中断。 当发送器从发送FIFO中取出数据送到发送移位寄存器,那么FIFO空状态信号将会被激活。如果控制寄存器中的发送模式选为中断模式,就会引发发送中断。 与FIFO有关的中断 波特率发生器 波特率发生器以MCLK作为时钟源 每个UART的波特率发生器为传输提供了串行移位时钟。波特率时钟由通过时钟源的16分频及一个由UART波特率除数寄存器(UBRDIVn)指定的16位除数决定。 UBRDIVn=(取整)(MCLK/(波特率×16))-1 回送模式与红外通信模式 回送模式:S3C44BOX的UART提供的一个测试模式。在这种模式下,发送出的数据会立即被接收。这一特性用于校验运行处理器内部发送和接收通道的功能,这种模式可以通过设置UART控制寄存器(UCONn)中的回送位来实现。 红外通信模式:S3C44BOX的UART模块支持红外线(IR)发送和接收。可以通过设置UART控制寄存器(UCONn)中的红外模式位来选择这一模式。 UART的寄存器Ⅰ 1.UART线控制寄存器 UART的寄存器Ⅱ 2.UART控制寄存器 UART的寄存器Ⅲ 3.FIFO控制寄存器 UART的寄存器Ⅳ 4.Modem控制寄存器 UART的寄存器Ⅴ 5.发送/接收状态寄存器 UART的寄存器Ⅵ 6.UART错误状态寄存器 UART的寄存器Ⅶ 7.UART的FIFO状态寄存器 UART的寄存器Ⅷ 8.Modem状态寄存器: Modem状态寄存器0(UMSTAT0)、寄存器1(UMSTAT1)的地址分别为0x01D0001C、0x01D0401C,可读, 初始值为0x06。 9.UART发送/接收保持(缓冲区)寄存器: 发送/接收保持寄存器0(UTXH0)、寄存器1(UTXH1)的地址在小模式下分别为0x01D00020、0x01D04020,在大模式下分别为0x01D00023、0x01D04023,可写, 初始值可编程。 10.UART波特率除数寄存器 UART波特率除数寄存器0(UBRDIV0)、寄存器1(UBRDIV1)的地址分别为0x01D00028、0x01D04028,可读写, 初始值可编程。 S3C44BOX的UART 的应用Ⅰ 1.电路接口和I/O口设置 S3C44BOX的串行应用接口电路中的PC12,PC13,PE1,PE2是多功能I/O口,因此,在编写串口数据收发程序之前,首先需要对PC口和PE口的工作模式进行设置。 Rpconc = Ox0f000000rPCONC; rPUPC = 0x3000; //设置内部上拉 rPCONE = (rPCONE Oxfc3)Oxeb; rPUPE = 0x6; S3C44BOX的UART 的应用Ⅱ 2.UART初始化 对UART口的可配置参数进行初始化,使其能够按照所要求的通讯方式进行通讯。对UART口进行初始化的设置程序见课本P186。 3.字符发送程序Uart_SendByte()见课本P187。 4.字符接收程序Uart_GetByte()见课本P187。 USB接口概述 USB(通用串行总线)接口正在被用于多种嵌入式系统设备的数据通信中,如移动硬盘、数码相机、PDA、高速数据采集设备等。它是由Compaq、HP、Intel、Lucent、Microsoft、NEC和Philips七家公司联合推出的新一代标准接口总线。是一种连接外围设备的机外总线。 其主要性能特点如下: 提供机箱外的热即插即用功能 ; 每个USB系统中有个主机,采用“级联”方式USB总线可连接多个外部设备; 适用于带宽范围在几千位/秒(Kb/s)一几百兆位l秒(Mb/s)的设备; 低成本的电缆和连接器; 具有错误检测和处理机制; 较低的协议开销带来了高的总线性能; 支持主机与设备之间的多数据流和多消息流传输 。 USB系统组成 一个USB系统由三部分来描述: USB主机:在任一USB系统中只有一个主机,到主计算机系统的USB接口被称作主控制器。 USB设备:分为Hub(集线器)和Function(功能)两大类。Hub提供到USB的附加连接点,功能为主机系统提供附加的性能。 USB互连:USB互连指的是USB设备与主机的连接和通信方式,它包括总线拓扑结构、内层关系、数据流模型和USB调度表。 USB总线用来连接各USB设备和USB主机 。 USB的物理接口 USB总线根导线:一对标准尺寸的双绞信号线和一对标准尺寸的电源线。 USB总线支持的数据传输率有三种:高速信令位传输率为480Mbs;全速信令位传输率为12Mbs;低速信令位传输率为1.5Mb/s。 USB2.0支持在主控制器与Hub之间用高速传输全速和低速数据,而Hub与设备之间以全速或低速传输数据,这种支持能力可以将全速设备和低速设备对高速设备可用带宽的影响减到最小。 USB的电源 USB的电源规范包括两个方面: 电源分配用来处理USB设备如何使用主机通过USB总线提供的电源。 电源管理用来处理USB系统软件和设备如何适应主机上的电源管理系统。 USB的总线协议 USB是一种查询(Polling)总线,由主控制器启动所有的数据传输。USB上所挂连的外设通过由主机调度的( Host-Scheduled)、基于令牌的(Token-Based)协议来共享USB带宽。 大部分总线个包的传输 : 令牌包 (Token Packet) 数据包(Data Packet) 握手包(Handshake Packet) 主控制器和Hub之间的某些总线个包的传输,这些类型的事务用来管理主机与全/低速设备之间的数据传输。 主机与设备端点之间的USB数据传输模型被称作管道,管道有两种类型:流和消息。 USB接口工作原理 USB设备最大的特点就是即插即用,之所以能够这样,是因为USB协议规定在主机启动或USB设备插入系统时都要对设备进行配置。就是按照USB协议,在USB主机与USB设备之间进行的一系列“问答”过程 。从而主机知道了设备的情况以及该如何与设备通讯,并为设备设置一个唯一的地址 。 在配置阶段主机也了解了设备端点的使用情况,便可以通过这些端点来进行特定传输方式的通讯。对于标准USB设备,操作系统带有它的驱动,而不需要编写专门的主机驱动程序。但这样就必须为它选择一种标准命令集;但对于非标准设备,则可以自定义一套请求指令集,,并需要编写专门的主机驱动程序来实现对USB设备的操作。 USB设备应用Ⅰ 对USB设备的开发需要考虑的因素: 选择USB接口控制器芯片。 编写USB设备要执行的USB通信代码(也称为固件程序)。 USB设备需要执行的其他功能,例如处理接收数据和即将发送数据所需要的硬件和程序代码。 一台支持USB接口的主机。 主机上装有与USB设备通信的驱动软件。 如果USB设备不是操作系统支持的标准设备,则主机上必须具有专用的应用软件来访问USB设备。 USB设备应用Ⅱ USB设备开发的一般步骤: ①根据所要开发的设备的功能需要,确定设备在USB总线上的位置、传输数据的速度以及传输数据的量等,从而确定选择哪一类的USB控制器芯片,并进一步具体决定采用芯片的厂家和型号,然后根据该器件和其他所需芯片进行电路设计。 ②编写固件程序,其作用是让主机能够识别该设备,并响应主机的各种请求。 ③根据所用设备是否为标准USB设备,来决定是另外编写驱动,还是使用操作系统自带的驱动程序来访问USB设备。 ④把编写好的固件程序载入 USB设备,并将USB设备插入主机总线打开应用程序可以对该设备进行指定的操作。 ⑤按需要调试和重复以上步骤。 以太网接口概述 以太网以其高度灵活、相对简单、易于实现的特点,成为当今最重要的一种局域网建网技术。通常所说的以太网主要是指以下3种不同的局域网技术: 以太网/IEEE 802.3 采用同轴电缆作为网络介质,传输速率达到10 Mbps。 100 Mbps以太网 又称为快速以太网,采用双纹线作为网络介质,传输速率达到100 Mbps。 1000 Mbps以太网 又称为千兆以太网,采用光缆或双纹线作为网络介质,传输速率达到1000 Mbps(1 Gbps)。 以太网工作原理 以太网最早是由Xeros公司开发的一种基带局域网技术; 使用同轴电缆作为网络介质; 以太网采用广播机制; 采用载波多路访问和碰撞检测(CSMA/CD)机制; 数据传输速率达到10 Mbps; 以太网/IEEE 802.3通常使用专门的网络接口卡或通过系统主电路板上的电路实现。 以太网的传输编码 曼彻斯特编码 差分曼彻斯特编码 以太网帧格式 以太网控制器RTL8019 RTL8019是高度集成的以太网控制器,为即插即用式NE2000兼容网络适配器提供了简易的解决方案。RTL8019共有32个输入输出地址,对应地址偏移量为00h—lFh。RTL8019的内部寄存器是分页的,每个寄存器都是8位。 RTL8019的复位 RTL8019的复位引脚RSTDRV是高电平有效的复位信号,高电平时间长度需大于800 ns,通常在RSTDRV从高电平回到低电平之后的100ms时,再对RTL8019进行读写操作,以确保完全复位。当处理器复位时,以太网控制器也复位。 热复位:为了保证能够完全复位,可以使用热复位方法。18h一1Fh的8个地址,为复位端口,对该端口的偶数地址读或写入任何数,都会引起以太网控制器的复位,这种方式称为热复位。 中断状态寄存器中的第7位RST跟复位有关,它的地址为07h,位于第0页,可直接读写。在以太网控制器执行了正确复位之后该位为1。一般在复位之后检查该标志位,以确认是否复位成功。 RTL8019寄存器Ⅰ 1.命令寄存器CR:地址偏移量是00h,长度为一个字节。 RTL8019寄存器Ⅱ(1) 2.与发送/接收相关的寄存器: ①PSTART:接收缓冲区的起始页地址(位于01h,在第0页可写,在第2页可读)。 ②PSTOP:接收缓冲区的结束页地址(该页不用于接收,位于02h,在第0页可写,在第2页可读)。 ③BNRY:边界寄存器(作为读指针使用,位于03h,在第0页可读写)。这个寄存器用来避免对环形接收缓冲区中数据的错误覆盖,通常用作指针,指向接收缓冲区中已经被读取的最后一个页。 ④CURR:当前页寄存器(作为写指针使用,位于07h,在第1页可读写)。这个寄存器的内容指向接收缓冲区中第一个可用于接收新数据的页面。 ⑤DCR:数据配置寄存器。将它设置为使用FIFO缓存,普通模式,8位数据传输模式。字节顺序为高位字节在前,低位字节在后。 RTL8019寄存器Ⅱ(2) ⑥TPSR:为发送页的起始页地址。初始化为指向第一个发送缓冲区的页。 ⑦RCR :接收配置寄存器,设置为使用接收缓冲区,仅接收与自己地址相匹配的数据包(以及广播地址数据包)和多点播送地址包;小于64字节的包和校验错的数据包将被丢弃。 ⑧TCR:发送配置寄存器,启用CRC(循环冗余校验)自动生成和校验功能,工作在正常模式。 ⑨RSAR0,1:对存储器进行操作的起始地址寄存器,RSAR0存放低8位,RSARl存放高8位。 ⑩RBCR0,1:对存储器操作的字节计数寄存器,RBCR0存放低8位,RBCRl存放高8位。 ⑩TBCR0,1:发送字节计数器,这两个寄存器设置了要发送数据包中的字节个数。TBCR0存放低8位,TBCRl存放高8位。 RTL8019寄存器Ⅲ 3.其他寄存器: ①IMR:中断屏蔽寄存器,设置成0x00时,屏蔽所有的中断,设置成0xFF将允许中断。 ②MAR0一MAR8:多点播送地址,可以全写0xFF。 ③PAGE2的寄存器是只读的,不用设置。PAGE3的寄存器不是NE2000兼容的,所以也不用设置。 RAM空间结构 以太网控制器含有16KB的RAM,地址为0x4000—0x7FFF,每256个字节称为一页,共有64页。 ?使用0x40—0x45作为以太网控制器的发送缓冲区,共6页。使用0x46~0x5F作为以太网控制器的接收缓冲区,共32页。 CURR和BNRY寄存器是以太网数据收发中用到的两个最主要的寄存器,CURR和BNRY主要用来控制缓冲区的存取过程,保证能顺次写入和读出。 CURR是以太网控制器写接收缓冲区的指针。 BNRY指向接收缓冲区中已经被读取的最后一个页。 网卡的物理地址 在完成对寄存器的初始化后,还要对以太网控制器的物理地址(即48位的以太网控制器地址)进行设置。 RAM地址中的0x0000~0x000B的12字节是网卡的物理地址。网卡的物理地址本应该是6个字节的,这12字节是单双地址重复存储的。0x000B后面的地址存储的是生产厂商的代码和产品标识代码,也是单双地址重复存储的。 以太网模块的接口设计Ⅰ 配置RTL8019:为了系统的精简,配置RTL8019为非即插即用模式。有着固定的中断,有着固定的端口地址。 以太网模块与处理器的接口电路: 以太网模块的接口设计Ⅱ 1.寄存器地址映射:采用nGCS5作为以太网模块的地址使能位,将以太网卡映射在了系统的Bank5上,地址从0xa000000开始,由此,要在程序中定义RTL8019的寄存器地址。 2.书写RTL8019中的页面切换函数,热复位函数(硬件复位之后的一次热复位)和初始化函数(设置接收缓冲区的位置和以太网物理地址,初始化寄存器,设置中断的模式)。 通过RTL8019传输数据:数据的发送校验,总线数据包的碰撞检测与避免都由芯片自己完成的,我们只需要配置发送数据的物理层地址的源地址、目的地址、数据包类型以及发送的数据就可以进行数据发送了。 IIC接口概述 IIC是一种双向两线制的串行总线,由于它支持任何一种IC制造工艺,且能够提升硬件的效率和简化电路的设计,因此众多厂商都提供了IIC兼容芯片。 S3C44BOX内部也具有IIC总线接口模块,支持一个多主IIC-BUS串形接口,主S3C44B0X能发送或接收串形数据到从设备,并遵守标准的IIC协议。 IIC总线操作模式为:主发送模式、主接收模式、从发送模式、从接收模式。 IIC总线.起始条件和停止条件: 起始条件发生在SCL信号为高时,SDA产生一个由高变低的电平变化处。 停止条件发生在SCL信号为高时,SDA产生一个由低变高的电平变化处。 2.数据传输格式: 每个字节长度都是8位,每次传输中字节的数量没有限制。在起始条件后面的第一个字节是地址域,之后,每个传输的字节后面都有一个应答(ACK)位。传输中串行数据的MSB(字节的高位)首先发送。 应答信号: ACK脉冲信号在SCL线X的IIC总线X处理器多主模式的IIC总线X采用专门的串行数据线(SDA)和串行时钟线(SCL)与总线上的其他外设传输信息。 IIC总线操作 读写操作 配置IIC总线 IIC总线接口专用寄存器 CAN总线概述 CAN全称为Controller Area Network,即控制器局域网,是国际上应用最广泛的现场总线之一。 CAN的主要特点包括: 低成本; 极高的总线利用率; 很远的数据传输距离(长达10公里); 高速的数据传输速率(高达1Mbit/s); 可根据报文的ID决定接收或屏蔽该报文; 可靠的错误处理和检错机制; 发送的信息遭到破坏后可自动重发; 节点在错误严重的情况下具有自动退出总线的功能; 报文不包含源地址或目标地址,仅用标志符来指示功能信息优先级; CAN总线与同步串行接口SIO S3C44B0X 的SIO能与各种类型的串行外设接口,这个SIO模块能以一定的频率(由寄存器设定)发送或接收8位串行数据。时钟源可以选择内部时钟或外部时钟。 SIO模块功能: 8位数据缓冲(SIODAT); 12位的预定标器(SBRDR); 8位间隔计数器(ITVCNT); 时钟源选择逻辑; 串行数据I/O脚(SIORXD和 SIOTXD); 外部时钟输入输出脚(SIOCK); DMA运行模式。 SIO正常操作模式 操作模式:发送与接收同时进行,一个发送数据脚,一个接收数据脚,当一个字节写入SIODAT数据寄存器,如果SIO运行位设置和发送模式允许,则SIO开始发送数据。 对SIO模块编程的步骤: ①配置I/O脚(SIOTXD, SIOCLK, SIORXD); ②设置SIOCON为适当的配置; ③设置串行I/O中断允许位; ④如果想发送数据,写数据到SIODAT; ⑤设置SIOCON[3]为1,开始数据移位操作; ⑥当数据移位操作完成时,SIO中断被请求和SIODAT接收到数据; ⑦返回第4步。 SIO DMA 操作Ⅰ 在自动运行模式(非握手模式)下,SIO等待直到发送的数据被外部目标设备读走,在每次8位数据发送后,SIO插入一个可编程的间隔周期。 1.DMA发送数据步骤: ①清DCNTZ为0,使SIO能请求DMA服务。除了SIOCON[1:0]必须为00外, 适当的配置SIO; ②适当的配置DMA; ③SIO被配置为DMA发送模式; ④SIO自动请求DMA服务; ⑤SIO发送数据; ⑥返回步骤4直到DMA计数为0; ⑦设置DCNTZ为1,停止SIO请求进一步的DMA服务。 SIO DMA 操作Ⅱ 2.DMA接收数据步骤: ①清DCNTZ为0,使SIO能请求DMA服务.除了SIOCON[1:0]必须为00外, 适当的配置SIO; ②适当的配置DMA; ③SIO被配置为DMA只接模式; ④设置SIOCON[3] (SIO 开始位)来开始接收操作; ⑤SIO在接收到8位数据后请求DMA服务; ⑥返回步骤5直到DMA计数为0; ⑦设置DCNTZ为1,停止SIO请求进一步的DMA服务。 SIO接口寄存器 1)SIO控制寄存器(SIOCON):其地址为0x01D14000,可读写,初始值为0x00。 2)SIO 数据寄存器 (SIODAT):是一个8位的SIO 数据寄存器,它用于存放要发送数据或已接收的数据,地址为0x01D14004,可读写, 初始值为 0x00。 3)SIO 波特率预定标器寄存器 (SBRDR):用来确定SIO的波特率。是12位寄存器,地址为0x01D14008,可读写,初始值为0x00。 SIO的 波特率 = MCLK / 2 /( SBRDR寄存器的值 + 1) 4)SIO 间隔计数寄存器(IVTCNT): IVTCNT是一个8位计数器,地址为0x01D1400C,可读写,初始值为0x00。在自动运行模式下,每传送8位数据插入一个时间间隔: 时间间隔 = MCLK / 4/ ( IVTCNT +1) 5)SIO 间隔计数寄存器(IVTCNT):当SIO工作在DMA模式时,对应的DCNTZ必须为0,当DMA完成时,对应的DCNTZ设置为1。DCNTZ地址为0x01D14010,可读写,初始值为 0x00。 中断接口概述 S3C44BOX具有30个中断源,包括1个看门狗定时器,6个定时器,6个UART,8个外部,4个DMA,2个RTC,1个ADC,1个IIC和1个SIO共30个中断。 S3C44BOX内置的中断控制器可以接收来自30个中断源的请求。S3C44B0X支持新的中断处理模式称为矢量中断模式。中断控制器的角色,就是响应来自FIQ(快速中断请求)或IRQ(普通中断请求)的中断,并请求内核对中断进行处理。 多个中断请求发生时,由硬件优先级逻辑确定应该有哪个中断得到服务,同时硬件逻辑使中断向量表的跳转指令加载到(0X18或0X1C)位置,在该位置执行跳转指令使程序跳到相应的中断服务线程,因此相对于传统的ARM的软件方法能够大大减少中断进入延时。 中断控制器Ⅰ 1.中断模式 ARM7TDMI有2种类型的中断模式:FIQ和IRQ。 IRQ和FIQ之间的区别是:对于FIQ必须尽快处理事件并离开这个模式;IRQ可以被FIQ中断,但IRQ不能中断FIQ;为了使FIQ更快,FIQ模式具有更多的私有寄存器。 2.PSR的F位和I位 PSR指ARM7TDMI处理器的程序状态寄存器。如果PSR的F位被设置为1,处理器将不接受来自中断控制器的FIQ;如果PSR的I位被设置为1,处理器将不接受来自中断控制器的IRQ。 因此,为了使能相应中断机制,PSR的F位或I位必须被清0,同时中断屏蔽寄存器INTMSK的相应位也必须被清0。 中断控制器Ⅱ 3.中断请求寄存器INTPND INTPND的各位指示了某个中断请求是否还未被处理。在INTPND中将要或已被置位的中断位称为pending位。INTPND是一个只读寄存器,在中断服务程序中要想清除pending位时,需要采用在中断服务寄存器I_ISPC或F_ISPC的相应位写入1的方式实现。 INTPND寄存器中的26个位对应着每一个中断源。当某个中断产生时,INTPND中的相应位就会置1,说明该中断还未被处理。在中断服务程序中,当处理结束后必须及时清除该pending位,从而使系统能够及时再次响应该类型的中断。 4. 中断屏蔽寄存器INTMSK 如果该寄存器的某位被置1,则与该位对应的中断响应被禁止。如果对应位为0,则这个中断发生时将会被正常响应。 如果某个中断在INTMSK寄存器中的对应位为1,但是又有这个中断发生,则它的pending位还是会置位,只是不会自动转入中断服务程序。如果全局屏蔽位被置1,那么,当任一中断发生时,中断pending位还是会置位,但是所有的中断都不会得到服务。 中断源Ⅰ 在30个中断源中有26个中断源提供给中断控制器,4个外部中断(EINT4/5/6/7)请求是通过“或”的形式合成为1个中断源送至中断控制器,2个UART错误中断(UERRORO/1)也是如此。 中断源Ⅱ 中断优先级产生模块 S3C44BOX中断优先级的决定有两种方式: 通过软件查询决定中断优先级,该方式在跳到相应服务程序之前需要一个较长的延迟时间; 通过硬件决定中断优先级:矢量中断模式。 如果中断向量模式使用和一个中断源被配置为ISQ中断,中断将被中断优先级产生模块处理。 中断优先级产生模块处理包括五个单元:1个主单元,4个从单元,每个从单元管理6个中断源,包括4个优先级次序可编程的优先级源(sGn)和2个固定优先级源。一个主单元管理4个从单元mGn和2个中断源mGKn,用来确定4个从单元和2个中断源的优先级mGKn。 中断优先级 如果中断源A被设置为FIQ中断,而中断源B设置为IRQ中断,那么中断源A比中断源B具有更高的中断优先级,因为在任何情况下,FIQ中断都比IRQ中断具有更高的优先级。 如果中断源A和中断源B在不同的主单元中,并且A所在的主单元的优先级比B所在的主单元优先级高,则中断源A的优先级肯定比中断源B的优先级高。 如果中断源A和B在同一个主单元中,且中断源A的优先级比B高,则A具有更高的优先级。 位于sGA, sGB, sGC和sGD的中断优先级总是高于位于sGKA和sGKB的中断优先级。在sGA,sGB,sGC和sGD之间的优先级的高低是可编程的,或者通过Round一Robin(轮转)方式来决定。在sGKA和sGKB之间,sGKA总是拥有更高的优先级。mGA, mGB, mGC和mGD组中的中断优先级总是高于mGKA和mGKB。因此,MGKA和mGKB在所有中断源之中优先级是最低的。 中断矢量地址表Ⅰ 分支指令机器代码= 0xea000000 +((destination address - vector address - 0x8)2) 其中destination address为中断服务线程ISR 的开始地址,vector address 为中断源在中断相量表中的地址,即分支指令所在地址,分支指令机器代码有硬件自动产生。 中断矢量地址表Ⅱ 每个中断源对应的矢量地址 控制中断的寄存器Ⅰ 1.中断控制寄存器: 在实际编程中,对中断控制寄存器进行读取和设置来实现对中断的响应和控制。中断控制寄存器INTCON的地址为0x01E00000,可读写,初始值为0x07。 控制中断的寄存器Ⅱ(1) 2.中断请求寄存器INTPND: INTPND寄存器的地址为0x01E00004,用来指示中断请求状态。 控制中断的寄存器Ⅱ(2) 控制中断的寄存器Ⅲ(1) 3.中断模式寄存器INTMOD: INTMOD中的26位分别对应着每个中断源,当INTMOD中的某个位设置为1,则ARM7TDM1内核将以FIQ(快速中断)模式操作那个中断;否则,将以IRQ(普通中断)模式操作。中断模式寄存器INTMOD的地址为0x01E00008,可读写。 控制中断的寄存器Ⅲ(2) 控制中断的寄存器Ⅳ(1) 4.中断屏蔽寄存器INTMSK: 中断屏蔽寄存器INTMSK的地址为0x01E0000C,可读写,用以确定哪个中断源被屏蔽,屏蔽的中断源将不被服务。 控制中断的寄存器Ⅳ(2) 控制中断的寄存器Ⅴ 5.IRQ矢量模式寄存器: 主优先级产生单元通过I_PMST寄存器决定4个辅单元和2个中断源之间的优先级。2个中断源INT_RTC和INT_ADC在26个中断源中优先级是最低的。如果几个中断请求同时发生,在I_ISPR寄存器中将其中具有最高优先级的中断源对应位置1。 控制中断的寄存器Ⅵ(1) 6.IRQ/FIQ中断服务寄存器(I_ISPC/F_ISPC): 对应着IRQ的I_ISPR和I_ISPC寄存器,在FIQ中断模式下,也与中断服务相关的寄存器。 控制中断的寄存器Ⅵ(2) I_ISPC/F_ISPC寄存器的位定义如下表所示: 控制中断的寄存器Ⅵ(3) 控制中断的寄存器Ⅶ 7.外部中断控制寄存器EXTINT: 外部中断控制寄存器EXTINT用来设置外部中断的触发模式。 控制中断的寄存器Ⅷ 8.外部中断请求寄存器EXTINTPND: EINT4,EINT5,EINT6和EINT7分享同一个中断请求源,因此,中断服务程序要通过读取EXTINTPND寄存器来区别这4个中断源。它们的中断处理程序(ISR)必须在处理结束时,通过将EXTINTPND中对应位写1来清除该位。 外部中断的应用Ⅰ 1.I/O口设置 首先对PG口的工作模式进行设置,要让PG4-7工作在外部中断输入状态。因此,要将PG口设置在功能3模式下,采用语句: rPCONG = 11 11 11 11 xx xx xx xxB; 如果希望采用内部上拉,则语句为: rPUPG = 0000xxxxB。 外部中断的应用Ⅱ 2.外部中断触发模式设置 利用外部中断控制寄存器来设置外部中断的触发模式.由于采用电平触发容易引起重复触发,因此建议采用下降沿或上升沿触发,不同触发方式的语句如下: ①采用下降沿触发时: rEXTINT=01x 01x 01x 01x xxx xxx xxx xxxB; ②采用上升沿触发时: rEXTINT=10x 10x 10x 10x xxx xxx xxx xxxB; ③采用边沿触发时: rEXTINT=11x 11x 11x 11x xxx xxx xxx xxxB; ④采用低电平触发时: rEXTINT=000 000 000 000 xxx xxx xxx xxxB; 外部中断的应用Ⅲ 3 中断寄存器设置 将EINT4-7设置为IRQ中断模式的语句为: rINTCON=0x5 ; //非矢量中断模式,禁止FIQ中断,使能IRQ中断 设置好了,采用以下语句开启中断: rINTMSK= ~(BIT_GLOBALBIT_EINT4567)。 4 主程序编写,代码见课本P219. 5 中断处理程序 void irq_Eint4567lsr(void) { which_int = rEXTINTPND; rEXTINTPND = Ox0f; //清除EXTINTPND寄存器 rl_lSPC= BIT_EINT4567; //清除pending_bit Delay(1000); //延时消抖 } 模/数转换概述 所谓模/数转换器就是把电模拟量转换成为数字量的电路. 微机与控制系统的接口框图 模/数转换的方法和原理Ⅰ 1.计数式A/D转换法 模/数转换的方法和原理Ⅱ 2.双积分式A/D转换法 双积分式A/D转换的基本原理是对输入模拟电压和参考电压进行两次积分,变换成与输入电压均值成正比的时间间隔,利用时钟脉冲和计数器测出其时间间隔,因此,此类A/D转换器具有很强的抗工频干扰能力,转换精度高,但速度较慢 . 模/数转换的方法和原理Ⅲ 3.逐次逼近式A/D转换法 A/D转换的重要指标 1.分辨率(Resolution):反映A/D转换器对输入微小变化响应的能力,通常用数字输出最低位(LSB)所对应的摸拟输入的电平值表示。 2.精度(Accuracy): 绝对精度(Absolute Accuracy) ; 相对精度(Relative Accuracy)。 3.转换时间(Conversion Time):指完成一次A/D转换所需的时间,即由发出启动转换命令信号到转换结束信号开始有效的时间间隔。转换时间的倒数称为转换速率。 4.量程:量程是指所能转换的摸拟输入电压范围,分单极性、双极性两种类型。例如,单极性 量程为0~+5V,0~+10V;双极性 量程为-5~+5V,-10~+10V。 S3C440BX自带的A/D转换器 ARM S3C440BX芯片自带一个8路10位A/D转换器,该转换器可以通过软件设置为Sleep摸式,可以节电减少功率损失,最大转换率为100K,非线。 ARM芯片与A/D功能有关的引脚: AIN[7:0]为8路摸拟采集通道,ADC的模拟输入;AREFT为参考正电压,AREFB为参考负电压,AVCOM为摸拟公共参考电压。 ADC的相关寄存器Ⅰ 1.A/D转换控制寄存器(ADCCON): 地址为0x01D40000(在小模式下,以字、半字、字符单位存取)、0x01D40002(在大模式下,以半字单位存取)、0x01D40003(在大模式下,以字符单位存取),可读写,初始值为0x20。 ADC的相关寄存器Ⅱ 2.A/D转换预分频寄存器 地址为0x01D40004(在小模式下,以字、半字、字符单位存取)、0x01D40006(在大模式下,以半字单位存取)、0x01D40007(在大模式下,以字符单位存取),可读写,初始值为0x00。 数/模转换器原理 D/A转换器的主要功能是将数字量转换为模拟量。数字量是由若干数位构成的,每个数位都有一定的权。我们说把一个数字量变为模拟量,就是把每一位上的代码按照权转换为对应的模拟量,再把各位所对应的模拟量相加,所得到各位模拟量的和便是数字量所对应的模拟量。 基于上述思路,在集成电路中,通常采用T型网络实现将数字量转换为模拟电流,然后再用运算放大器完成模拟电流到模拟电压的转换。所以,要把一个数字量转换为模拟电压,实际上需要两个环节:即先由D/A转换器把数字量转换为模拟电流,再由运算放大器将模拟电流转换为模拟电压。 T型电阻解码网络 数/模转换器的分类 1.电压输出型(如TLC5620): 虽有直接从电阻阵列输出电压的,但一般采用内置输出放大器以低阻抗输出。直接输出电压的器件仅用于高阻抗负载,由于无输出放大器部分的延迟,故常作为高速D/A转换器使用。 2.电流输出型(如THS5661A): 很少直接利用电流输出,大多外接电流—电压转换电路得到电压输出。当外接运算放大器进行电流电压转换时,则电路构成基本上与内置放大器的电压输出型相同,这时由于在D/A转换器的电流建立时间上加入了达算放入器的延迟,使响应变慢。 3.乘算型(如AD7533): 在基准电压输入上加交流信号的,能得到数字输入和基准电压输入相乘的结果而输出,称为乘算型D/A转换器。乘算型D/A转换器一般不仅可以进行乘法运算,而且可以作为使输入信号数字化地衰减的衰减器及对输入信号进行调制的调制器使用。 D/A转换器的主要指标 1.分辩率(Resolution):指最小模拟输出量(对应数字量仅最低位为‘1’)与最大量(对应数字量所有有效位为‘1’)之比。 2.建立时间(Setting Time):是将一个数字量转换为稳定模拟信号所需的时间,也可以认为是转换时间。DA中常用建立时间来描述其速度,而不是AD中常用的转换速率。一般地,电流输出DA建立时间较短,电压输出DA则较长。 3.其他指标:线性度(Linearity),转换精度,温度系数/漂移。 ARM的JTAG接口基本知识Ⅰ 1. JTAG是Joint Test Action Group的缩写,是IEEEll49.1标准。使用JTAG的优点:JTAG的建立使得集成电路固定在PCB上,只通过边界扫描便可以被测试。在ARM7TDMI处理器中,可以通过JTAG直接控制ARM的内部总线、I/O口等信息,从而达到调试的目的。 2. JTAG的典型信号: TMS:测试模式选择(Test Mode Select),通过TMS信号控制JTAG状态机的状态; TCK:JTAG的时钟信号; TDI:数据输入信号; TDO:数据输出信号; nTRST:JTAG复位信号,复位JTAG的状态机和内部的宏单元(Macrocell)。 ARM的JTAG接口基本知识Ⅱ 3. JTAG状态机:JTAG状态机分成15个状态,每一个状态都有其相应的功能。不管JTAG状态机处于哪个状态,当TMS信号等于逻辑1的时候,连续5个时钟信号以后,JTAG状态机必然回到Test-logic Reset状态。这也是JTAG状态机的复位时的状态。 4. JTAG链的组成:每一条JTAG链是由若干个JTAG的扫描单元串连组成的,每一个扫描单元都可以配置成捕获外部信号的输入单元或者对外的输出单元。依靠移位寄存器,通过JTAG的TDO和TDI信号线,可以使数据串行输出到每一个JTAG扫描单元上,或者读出每一个扫描单元的数据。 ARM的JTAG接口基本知识Ⅲ 5. JTAG链的工作过程: 步骤一:JTAG处于挂起状态,JTAG的扫描单元并不影响设备信号的输入输出。 步骤二:在JTAG状态机的Capture-DR状态,把IO口上的数据捕获到JTAG扫描单元的移位寄存器上。 步骤三:在JTAG状态机的Shift-DR状态,TCK的一次跳变,把数据从TDI移位到JTAG移位寄存器的高位上,并从TDO输出移位寄存器的低位(就是O3的数据)。 步骤四:经过6个TCK的时钟可以把整个捕获到的JTAG链的移位寄存器上的数据移出,并且,把新的数据移入JTAG链。 步骤五:在JTAG状态机的Update—DR状态,可以把新的数据锁定到设备的输入或者输出I/O口上,从而完成了一次JTAG的数据更新。 ARM的JTAG调试结构 ARM7TDMI内核的JTAG扫描链结构 ARM7TDMI内核的JTAG扫描链结构主要包括了3条扫描链: Scan Chain 0:有113个扫描单元,包括ARM核的所有的I/O、地址数据总线和输入输出控制信号。这条链上的信号复杂,不易控制,但是,包含的信息丰富,可以通过这条链得到ARM7TDMI内核的所有信息。 Scan Chain l:有33个扫描单元,包括ARM核的数据总线和一个断点控制信号。这是一条很有用的链,通过控制这条链,可以控制ARM核执行指定的指令,从而实现对ARM的内部寄存器、协处理器以及外部存储器的读写操作。 Scan Chain 2:有38个扫描单元,通过控制EmbeddedICE宏单元,实现对ARM执行指令的断点、观察点的控制。 EmbeddedlCE EmbeddedlCE是集成在ARM内核中的嵌入式ICE仿真器,通过对EmbeddedlCE的控制,对EmbeddedlCE中寄存器的读取,可以获得ARM内核的状态,为程序设置断点以及读取Debug通信通道。EmbeddedICE的长度是38位,包括:32位数据,5位的访问EmbeddedICE中寄存器的地址,1个读写控制位。 EmbeddedICE的一个主要作用就是可以在ARM的程序中设置软件或者硬件的断点。在ARM7TDMI处理器的内核中,有两种断点的设置方式:硬件断点和软件断点。 在有两个Watchpoint资源的ARM7TDMI的内核中,断点可以有如下情况: 2个硬件断点,没有软件断点; 1个硬件断点,任意多个软件断点; 任意多个软件断点。 ARM7TDMI通过JTAG对外设的访问 JTAG可以对ARM的内核进行控制,从而实现对外围设备的读写。通常,在ARM7TDMI处理器中,JTAG对ARM外围设备的访问是通过对JTAG扫描链1的控制实现的。 ARM7TDMI中JTAG扫描链1有33个移位寄存器。其中前32位和ARM总线位是ARM内核的—个控制信号。当第33位是0时,表示ARM内核在执行下一条指令的时候,是在Debug模式下运行;当第33位是1时,表示ARM内核在执行下一条指令的时候,是在System模式下运行。 因为系统外设的工作频率和系统的主时钟(MCLK)一致。所以,在Debug模式下,只能执行和处理器内核相关的指令。要对外部设备(比如,系统的RAM空间)进行访问和操作,必须要让ARM的内核工作在系统模式下。而在系统模式下,ARM的内核的时钟是不受JTAG控制的,要想让ARM的内核重新受控,必须要配合EtubeddedICE中的WatchpoInt寄存器,让ARM的内核执行完一条访问外设相关的指令,从系统模式重新回到Debug模式下。 思考题Ⅰ 1.S3C44B0X具有多少通用I/O口?它们具有哪些功能? 2.简述矩阵式键盘线扫描检测法的工作原理。 3.电阻型触摸屏检测坐标值的原理。 4.如果LCD坐标原点在右下角,分辨率为240X180,触摸屏坐标原点在右上角,请给出触摸屏输出坐标的转换公式,对触摸屏的分辨率有什么影响。 5.S3C44B0X内部LCD控制器支持RGB像数点字节的数据格式? 6.S3C44B0X的UART接口具有哪些功能特性?232串行通讯的数据格式是什么? 思考题Ⅱ 7.假设要将S3C44B0X的UART1设置为:波特率9600b/s,7位数据位,2个停止位,1位奇偶校验位,并采用流控制工作,该如何设置?给出完成该设置功能的代码段。 8.CAN总线通讯最少需要几根线?如果多个节点应该如何连接? 9.用中断方式实现MCP2510的驱动。 10.3C44B0X的A/D转换器的类型是什么?共具有几路?与ADC相关的寄存器由哪些?他们的作用分别是什么? 11.DS7843的控制字是什么?各位代表的意义? 思考题Ⅲ 12.D/A转换器的分类。 13.D/A转换器的主要技术指标。 14.MAX504的特点及使用方法。 15.A/D转换器分为哪儿类?各有什么优缺点? 16.什么是JTAG?它有哪些特点? EXTINT 位 描述 EINT7 [30:28] 设置EINT7触发模式 000:低电平中断 001:高电平中断 01X:下降沿触发 10X:上升沿触发 11X边沿触发 EINT6 [26:24] 设置EINT6触发模式 000:低电平中断 001:高电平中断 01X:下降沿触发 10X:上升沿触发 11X边沿触发 EINT5 [22:20] 设置EINT5触发模式 000:低电平中断 001:高电平中断 01X:下降沿触发 10X:上升沿触发 11X边沿触发 EINT4 [18:16] 设置EINT4触发模式 000:低电平中断 001:高电平中断 01X:下降沿触发 10X:上升沿触发 11X边沿触发 EINT3 [14:12] 设置EINT3触发模式 000:低电平中断 001:高电平中断 01X:下降沿触发 10X:上升沿触发 11X边沿触发 EINT2 [10:8] 设置EINT2触发模式 000:低电平中断 001:高电平中断 01X:下降沿触发 10X:上升沿触发 11X边沿触发 EINT1 [6:4] 设置EINT1触发模式 000:低电平中断 001:高电平中断 01X:下降沿触发 10X:上升沿触发 11X边沿触发 EINT0 [2:0] 设置EINT0触发模式 000:低电平中断 001:高电平中断 01X:下降沿触发 10X:上升沿触发 11X边沿触发 EXTINTPND 位 描述 EXTINTPNDO 0 如果中断发生在EINT4上,该位置1,同时INTPND21也置1 EXTINTPND1 1 如果中断发生在EINT5上,该位置1,同时INTPND21也置1 EXTINTPND2 2 如果中断发生在EINT6上,该位置1,同时INTPND21也置1 EXTINTPND3 3 如果中断发生在EINT7上,该位置1,同时INTPND21也置1 其中,Vi是模拟输入电压,V0是D/A转换器的输出电压,C是控制计数端,当C=1时,计数器开始计数,C=0时,则停止计数。D7~D0是数字量输出,数字输出量又同时驱动一个D/A转换器。 (a)电路工作原理图 (b)双积分图示 逐次逼近式A/D转换原理框图 逐次逼近式A/D转换过程 ADCCON 位 描述 初始状态 标志 6 ADC状态标志(只读) 0:正在进行A/D转换 1:A/D转换结束 0 睡眠 5 系统省电模式 0:正常模式,1:睡眠模式 1 输入选择 [4:2] 时钟源选择 OOO:AINO 001:AIN1 Ol0:AIN2 011:AIN3 100:AIN4 101:AIN5 110:AIN6 111:AIN7 000 读启动 1 通过读操作启动A/D转换 0:禁止通过读操作启动转换 1:使能通过读操作启动转换 0 使能启动 0 通过使能操作启动A/D转换,如果读启动位置1,则该位无效 0:无操作 1:A/D转换启动,启动后该位被清零 0 ADCPSR 位 描述 初始状态 预分频值 [7:0] 预分频值(0-255),除数=2×(预分频值+1) A/D转换时,时钟频率=2×(预分频值+1)×16 0x00 3.A/D转换数据寄存器 地址为0x01D40008(在小模式下,以字、半字、字符单位存取)、0x01D4000A(在大模式下,以半字单位存取)、0x01D4000B(在大模式下,以字符单位存取),可读写,初始值为0x00。 ARM7TDMI的JTAG宏单元(Macrocell)主要包括3条JTAG扫描链(Scan Chain) 和一个JTAG的控制TAP状态机。 JTAG与AngelJTAG调试:协议转换器解释上位机传送过来的命令,通过JTAG控制ARM执行。 Angel调试:协议转换器可以直接做为目标板的Firmware的一部分,直接执行从宿主机传送过来的调试命令;并回送相应的数据。 下页续 注意:EINT4, EINT5, EINT6和EINT7分享同一个中断请求源,中断服务程序ISR要通过读取EXTINTPND3-0寄存器来区别这4个中断源,并在处理结束时通过将EXTINTPND3-0中对应位写1来清除该位。 中断源 矢量地址 中断源 矢量地址 EINT0 0 INT_TIMER1 0 EINT1 0 INT_TIMER2 0 EINT2 0 INT_TIMER3 0x0000006c EINT3 0x0000002c INT_TIMER4 0 EINT4/5/6/7 0 INT_TIMER5 0 TICK 0 INT_URXD0 0 INT_ZDMA0 0 INT_URXD1 0 INT_ZDMA1 0 INT_IIC 0 INT_BDMA0 0 INT_SIO 0x0000008c INT_BDMA1 0x0000004c INT_UTXD0 0 INT_WDT 0 INT_UTXD1 0 INT_UERR0/1 0 NT_RTC 0x000000a0 INT_TIMER0 0 INT_ADC 0x000000c0 INTCON 位 描述 初始状态 保留 3 0 0 V 2 禁止/使能IRQ中断的“矢量中断模式” 0:矢量中断模式 1:非矢量中断模式 1 I 1 禁止/使能CPU响应IRQ中断请求 0:IRQ中断使能 1:IRQ中断禁止 1 F 0 禁止/使能CPU响应FIQ中断请求 0:FIQ中断使能 1:FIQ中断禁止 1 下页续 下页续 下页续 寄存器 地址 R/W 描述 复位值 F_ISPR 0x01E00038 R 未经中断处理的FIQ中断寄存器(只有1位置位) 0 F_ISPC 0x01E0003C W FIQ中断服务清除寄存器(一旦被置位,INTPND中的相应位被清0) 未定义 下页续 类型 FIFO类型 非FIFO模式 Rx中断 每当接收数据达到接收FIFO触发的水平,就产生接收中断;如果FIFO非空且连续3个字时间没有接收到任何数据,就产生超时中断; 每当接收数据满,接收移位寄存器将产生一个中断; Tx中断 每当发送数据达到发送FIFO触发的水平,就产生发送中断; 每当发送数据空,发送保持寄存器将产生一个中断; 错误中断 帧错误、奇偶校验错误和被检测到并按字节接收的中止信号,都将产生错误中断;当达到接收FIFO的顶部,就会产生溢出错误中断; 所有错误都会立即产生一个错误中断。但两个错误同时发生,只有一个中断会产生; ULCONn 位 描述 初始值 保留 [7] ? 0 红外线] 该位确定是否使用红外通信模式 0:正常模式 1:红外收发模式 0 奇偶校验模式 [5:3] 该位确定奇偶如何产生和校验 0xx:无校验位 100:奇校验 101:偶校验 110:校验位强制/检测置1 111:校验位强制/检测置0 000 停止位的数量 [2] 该位确定停止位的个数,0:1位停止位 1:2位停止位 0 数据位长度 [1:0] 该位确定数据位的个数 00:5位 01:6位 10:7位 11:8位 00 UCONn 位 描述 初始值 发送中断类型 [9] 发送中断请求类型 0:脉冲(在发送缓冲区变空时立即引发中断) 1:电平(在发送缓冲区为空时引发中断) 0 接收中断类型 [8] 接收中断请求类型 0:脉冲(接收缓冲区接收到数据时立即引发中断) 1:电平(接收缓冲区正在接收数据时引发中断) 0 接收超时中断使能 [7] 在UART的FIFO使能的情况下,使能/禁止接收超时中断 0:禁止 1:使能 0 接收错误状态中断使能 [6] 使能UART在接收操作中发生错误时的错误中断响应 0:不产生错误状态中断 1:产生错误状态中断 0 回送模式 [5] 该位使UART自动进入回送模式 0:正常操作 1:回送模式 0 发送中止信号 [4] 该位将引发UART在一帧时间内发送中止信号, 该信号发送 完后,该位自动被清除 0:正常操作 1:发送中止信号 ? 0 发送模式 [3:2] 这2位决定当前哪个功能项能够向UART发送保持寄存器写入发送数据 00:禁止 01:中断请求或轮流检测模式 10: BDMAO请求(仅对UARTO) 11: BDMAI请求(仅对UART1) 00 接收模式 [1:0] 这2位决定当前哪个功能项能够从UART接收保持寄存器中读出接收数据 00:禁止 01:中断请求或轮流检测模式 IO:BDMAO请求(仅对UARTO) 11:BDMAl请求(仅对UART1) 00 UFCONn 位 描述 初始值 发送FIFO的触发电平 [7:6] 这两位确定发送FIFO的触发条件 00:空 01:4字节 10 :8字节 11 :12字节 00 接收FIFO的触发电平 [5:4] 这两位确定接收FIFO的触发条件 00 :4字节 01:8字节 10: 12字节 11:16字节 00 保留 3 ? 0 发送FIFO复位 2 该位在FIFO复位后自动清除 0 :正常 1:发送FIFO复位 0 接收FIFO复位 1 该位在FIFO复位后自动清除 0 :正常 1:接收FIFO复位 0 FIFO使能 0 0 :禁止 FIFO 1 :FIFO 使能 0 UMCONn 位 描述 初始值 保留 [7:5] 这3位必须为 0 000 自动流控制 4 AFC是否允许 0 :禁止 1 :使能 0 保留 [3:1] 这3位必须为 0 000 请求发送 0 如果AFC允许,该位忽略;如果AFC禁止,必须由软件来控制nRTS。 0 : 高电平(不激活 nRTS) 1 : 低电平(激活 nRTS) 0 UTRSTATn 位 描述 初始状态 发送移位寄存器为空 [2] 当发送移位寄存器中不包含有效数据或移位寄存器为空,该位自动被置位。0:非空 1:发送保持和移位寄存器为空 1 发送缓冲器为空 [1] 当发送缓冲区寄存器中不包含有效数据,这一位将自动被置位 0:缓冲区寄存器非空 1:空 如果使用了FIFO,则用户不用检测这个位,而应当检测UFSTAT中发送FIFO计数器位和FIFO满位 1 接收缓冲器数据准备好 [0] 当接收缓冲器寄存器中包含了有效数据,这一位将自动被置位 0:完全为空 1:缓冲区寄存器中包含有效数据 如果使用了FIFO则用户不用检测这个位,而应当检测UFSTAT中接收FIFO计数器位 0 UERSTATn 位 描述 初始值 间隔中断 [3] 如果接收到某个中止信号,该位将自动置1 0:未接收到中止信号 1:接收到中止信号 0 数据帧错误 [2] 如果在接收操作中发生了帧错误,该位将自动置1 0:接收中没有发生帧错误 1:帧错误 0 奇偶错误 [1] 如果在接收操作中发生了奇偶校验错误,该位将自动置1 1:奇偶校验错误 0:接收中没有发生奇偶校验错误 0 Overrun错误 [0] 如果在接收操作中发生了溢出错误,该位将自动置1 0:接收中没有发生溢出错误 1 :溢出错误 0 UFSTATn 位 描述 初始值 保留 [15:10] ? 000000 发送FIFO满 9 当发送 FIFO满时该位为1 0 : 0字节≤发送 FIFO 的数据个数 ≤15字节 1 :满 ? 0 接收FIFO满 8 当FIFO将要满时,该位为1 0 : 0字节≤接收 FIFO 数据个数 ≤15字节 1 :满 0 发送FIFO计数器 [7:4] 发送FIFO里的数据数量 0000 接收FIFO计数器 [3:0] 接收 FIFO里的数据数量 0000 字段 同步位 分隔位 目的地址 源地址 类型/长度 数据段 填充位 FCS 长度 56 8 48 48 16 46~1 500 X 32 在以太网帧中,同步位、分隔位、填充位和校验位这几个字段都是由以太网控制器自动产生的; 人们所关心的只是目的地址、源地址、类型和数据这4个字段的内容; 所有数据位的传输由低位开始(传输的位流使用曼彻斯特编码); 以太网的冲突退避算法是由硬件自动执行的; 位 符号 描述 7,6 PS1,PS0 选择寄存器页 00:0页 01:1页 10:2页 11:3页(为RTL8019AS配置) 5—3 RD2—0 表示要执行的功能 000:不允许 001:远程读取以太网控制器内存 010:远程写入以太网控制器内存 011:发送包 1XX:中止/完成远程DMA 2 TXP 要发送数据包时,要将该位置1,该位可能在发送完成后或者发送中止时内部清0,对该位写0操作无效 1 STA 写STP组合使用 0 STP 该位是停止命令。该位被置1,就停止接收或发送任何数据包,上电时该位为1。STA 与STP组合使用,10:启动命令 01:停止命令 * * 3.代码见课本P153 4.代码见课本P158 REGBANK具有18个可编程寄存器,用于配置LCD控制器 LCDCDMA为专用DMA VIDPRCS 从LCDCDMA 接收数据,将相应格式的数据通TIMEGEN包含可编程的逻辑 TIMEGEN部分产生VFRAME, VLINE, VCLK, VM等信号。 代码见课本P169 引脚号 名称 描述 1,10 +Vcc 供电电源输入2.7-5V 2,3 X+ , Y+ 触摸屏X+、Y+ 输入,接内部ADC输入通道 4,5 X- ,Y- 触摸屏X-、Y- 输入 6 GND 接地 7,8 IN3,IN4 附属ADC输入通道 9 VREF ADC参考电压 11 PENIRQ 接触中断输出,必须外接10-100 KΩ电阻 12,14 16 DOUT,DIN,DCLK 控制字输入、A/D转换结果输出端;在时钟下降沿时输出,上升沿时输入 13 BUSY 忙指示输出 15 CS 片选 第7位(MSB) 第6位 第5位 第4位 第3位 第2位 第1位 第0位 (LSB) S A2 A1 A0 MODE SER/DFR PD1 PD0