第3章 CHAPTER 3 熟悉ARM嵌入式教学实验系统 3.1ARM嵌入式教学实验系统 嵌入式教学实验系统采用双核处理器架构设计,双核处理器架构是指采用一个ARM核及一个SoC图像处理核的架构芯片,完成视频采集、H.264压缩、音频压缩、网络传输以及嵌入式Linux操作系统等。如图31所示为嵌入式教学实验系统实物图。 图31嵌入式教学实验系统实物图 嵌入式教学实验系统集成了各类物联网功能模块,支持温度/湿度采集、超声波测距、加速度测定等传感器功能,支持音视频采集功能,以及以太网、蓝牙、WiFi和ZigBee多种通信方式。 嵌入式教学实验系统主要由箱体、底板及核心开发板组成,其中核心开发板通过两个2×40的母排固定在底板上。进行实验时首先通过一个220V转12V的电源适配器将实验箱底板与三相电源相连,通过RS232串口线连接实验箱和计算机可以在计算机端进行串口调试,底板接上网线可与同一局域网下的其他设备进行数据交互。 3.2嵌入式教学实验系统的总体设计方案 本嵌入式教学实验系统设计的功能可以分为以下几个主要部分,具体设计框图如图32所示。 图32教学实验系统设计框图 以下是对系统的各个部分的简单说明。 (1) 核心板: 本系统采用的CPU是主频率为300MHz的TMS320DM365,核心板上能实现视频数据采集编码、音频数据采集编码、网络数据传输等功能。 (2) TF卡槽: 在本系统中用TF卡来存储视频数据等。 (3) 温度/湿度传感器: 通过 DHT11测量本地温度和湿度。 (4) 蓝牙: 采用HM10蓝牙模块,主芯片为 TI 的CC2541芯片,支持AT 指令,能够实现短距离内的通信。 (5) 超声波测距: 采用HCSR04模块测量障碍物与测距模块之间的距离。 (6) 加速度计: 采用三轴传感器ADXL335确定运动方式。 (7) 继电器: 本系统采用SRD继电器。 (8) 电源接口: 12V输入电源,负责给系统的各部分供电。 (9) ZigBee: 芯片采用TI CC2530,ZigBee也可用于短距离通信。 (10) USB口: 采用USB TypeA接口,支持USB 2.0、USB 3.1 Genl(SuperSpeed USB 5Gbps)和USB 3.1 Gen2(SuperSpeed USB 10Gbps)数据传输速率。 (11) 串口: 采用RS232接口,信号线少,传送距离远,可灵活选择波特率。 (12) 网口: 采用常用的RJ45以太网接口,支持10Mbps和100Mbps自适应的网络连接速度。 (13) 数字摄像头和模拟摄像头: 有数字和模拟两个采集视频的摄像头,可在视频采集界面通过K16按键进行摄像头切换。 (14) 液晶屏: 摄像头界面和QT界面显示在640×480px的LCD屏上。 3.3系统核心开发板硬件架构 实验箱核心板的布局如图33所示。 下面具体介绍所使用的关键芯片与各功能模块。 1. TMS320DM365芯片 主芯片采用TI公司的TMS320DM365芯片(以下简称DM365),这是一款面向多媒体处理的专用SoC架构芯片,其延续了达芬奇家族处理器ARM+DSP的双核架构,集成了ARM926EJS核和DSP核,其中ARM处理器核主要负责外设接口的管理和控制,DSP核则包含一个H.264高清编解码协处理器HDVICP和一个MPEG4/JPEG高清编解码协处理器MJCP,可以支持H.264/MPEG4的高清视频(1080p@15f/s,720p@30f/s)。图34为DM365内部功能结构和对外接口。 图33实验箱核心板的布局 图34DM365内部功能结构和对外接口 此芯片的输入输出(I/O)外设也非常丰富,存储接口包括MMC/SD、DDR2控制器、NAND/SM接口等,连接接口包括10Mbps/100Mbps以太网口、USB 2.0(High Speed)等,通用I/O接口包括SPI、UART、I2C等。 ARM子系统、视频处理子系统、视频图像协处理器和外设之间通过直接内存读取(Direct Memory Access,DMA)实现。DMA允许不同速度的硬件在不占用CPU的大量终端负载的情况下进行通信。进行DMA数据通信时,不需要程序控制,由硬件自动完成。这样在进行大量数据的通信时,减少了系统对CPU资源的利用率,提升了系统性能。 2. TVP5151芯片 TVP5151是一款由TI公司推出的超低功耗的NTSC、PAL、SEVAM制式视频解码芯片,它包括一个9位的模数转换器,工作频率是2倍的采样率,采样率27MHz是由晶振或振荡器产生输入的。它可以接收最多两路的复合视频输入,或一路端子视频输入,同时能够将模拟视频转化为内嵌同步的8位ITUR BT656标准的或分离同步的8位YCbCr 4∶2∶2的数据格式。 在典型的工作条件下,其功率为138mW,在掉电模式下,功率小于1mW,可以使用IPC进行编程和配置。TVP5151中共有256个寄存器,其中预留了总共98个寄存器(它们是0ch、10h、17h、1Fh~20h、25h~27h、29h~2Bh、31h~7Dh、8Dh、8Fh、BCh~BFh、Ceh、FDh~FFh),且有50个寄存器为只读寄存器(它们是2Ch、2Dh、80h~8Ch、90h~B0h、C6h、C7h)。 将CMOS摄像头获得的AV复合信号输入至TVP5151的 AIP1A接口,经过 TVP5151的模数转换后,获得8位的数字信号,接入至DM365的视频引脚,即完成视频数据的A/D转换和输入。SDA和SCL连接DM365的IC总线后,可以用于TVP5151的寄存器配置。HSYNC 和VSYNC 是行场同步信号,PCLK/SCLK是信号时钟用于同步输出的视频信息。 3. TVL320AIC3101芯片 TVL320AIC3101(以下简称AIC3101)是由TI公司出品的一款用于便携式音频/电话的低功耗立体声音频编解码器。它包含一个立体声的DAC和一个立体声的ADC,其中 DAC的信噪比为102dBA,可以接受的数据为16b/20b/24b/32b,支持采样率为8~96kHz,ADC的信噪比为92dBA,也支持8~96kHz的采样率。AIC3101包含6个音频输入脚和6个音频输出脚,可以通过I2C总线配置,音频串行数据总线支持I2S。在使用3.3V模拟电源,立体声回放48kHz时功率为14mW。在本设备上的主要信号输入输出连接示意图如图35所示。 图35AIC3101硬件连接图 DM365通过PC控制总线对AIC3101的寄存器配置后,可完成音频数据采集和播放功能。主要过程如下: 首先,经由MIC接收音频信号至AIC3101的MIC左右声道,进入AIC3101音频芯片进行模数转换,然后数据通过MCBSP 口交给DM365处理,根据要求,可使用合适的音频压缩算法,由 DM365完成如G711等音频编码工作; 当DM365接收到音频数据后,会先通过 DM365进行相应的解码,然后通过MCBSP 口输入AIC3101,最后在AIC3101中进行数模转换,通过耳机的左右声道输出播放。 4. DDR2内存模块 本系统的内存由DDR2(Double Data Rate 2)芯片构成,它与上一代DDR内存技术标准最大的不同就是,虽然同样采用了在时钟的上升/下降沿同时进行数据传输的基本方式,但DDR2内存拥有两倍以上一代DDR内存预读取速率,即4b数据预读取。换句话说,DDR2内存每个时钟能够以外部总线4倍的速度读/写数据,并且能够以内部控制总线4倍的速度运行。 DDR2的时钟信号也是一对差分信号,如图36所示,在CLKn信号和CLK信号的交叉处传输数据。 图36DDR2差分时钟信号图 DDR2可读写,存取速度较高,但不具备掉电不易失性属性,主要用于运行程序、数据以及堆栈。本系统采用三星公司的K4T1G164QGBCF7,其内存容量128MB,内部组织结构为8Mb×16个I/O×8banks,16Mb×8个I/O×8banks。这种同步装置实现的高速双数据率传输速率高达800Mbps。 5. NAND Flash闪存模块 非掉电易失性存储器Flash,由于其具有成本低、速度快及密度大的特点而在嵌入式系统中得到了广泛的应用。与磁盘等磁性介质的存储器相比,对Flash的操作存在一些特殊性,例如下面的两点: (1) Flash最小的擦写单位是块(Block),有时也称为扇区(Sector),不能对单个字节进行擦除。一般一个块的大小为64KB。 (2) Flash只能对空的位置进行写操作,即该地址上的内容全为0xFF,也就是说,如果该位置非空,那么写操作无法起作用。如果要对一个原来已经有内容的空间进行改写,则需要先将该空间所在块读出到内存,在内存中改写为全0xFF,再对整个块进行改写。Flash存储器主要有NOR和NAND两种类型。一般来说,NOR型大多适合程序代码的存储,而NAND型则可以用来存储大容量数据。 本嵌入式教学实验系统使用一片Flash来对CPU的存储空间进行扩展,Flash与DM365的连接原理图如图37所示。 图37Flash与DM365的连接原理图 闪存模块使用的NAND Flash芯片为三星公司的K9K8G08U0ESCBO,有512MB的闪存容量以及256Mb的备用空间,是一个4Gb NAND闪存。Flash的编程与读操作都是以页为单位进行的,而擦除操作是以块为单位进行的。一个程序操作可以在(2K+64)B的页上在400μs内执行完毕,而一个擦除操作可以在(128K+4K)B的块上在4.5ms内执行完毕。数据寄存器中的数据可以以每字节25ns周期时间读出。I/O引脚可作为地址和数据输入/输出以及命令输入的端口。片上写控制器自动执行所有程序和擦除功能,包括脉冲重复、内部验证和数据边值。即使是写密集型系统也可以通过提供带有实时映射算法的ECC(错误纠正码)进行数据校正。本嵌入式教学实验系统中的BootLoader、各种设备驱动程序、Linux内核映像和比较重要的配置文件都存储在Flash中。系统的物理内存布局如图38所示。 图38系统的物理内存布局 6. 时钟模块 RTC使用了一块X1205芯片,用于系统时间的校准等。X1205是一个带有时钟、日历两路报警振荡器补偿和电池切换的实时时钟。 实时时钟(RTC)使用一个外部的 32.768kHz石英晶体来保持精确的年、月、日、星期、时、分、秒。RTC具有闰年校正和世纪字节。时钟对少于31日的月也能校正。时钟寄存器有一位控制着24/12小时或上午/下午格式。 RTC强大的双报警功能能够被设置到任何时钟日历值上,任意实际存在的时刻均可报警,警报能够在状态寄存器被查询到或在IRQ引脚提供一个硬件的中断信号,IRQ引脚允许重复产生周期性的中断。 该芯片提供一个备份电源输入脚VBACK,该引脚容许器件用电池或大容量电容进行备份供电。整个X1205器件的工作电压范围为2.7~5.5V,X1205的时钟日历部分的工作可降到1.8V(待机模式)。 7. 以太网模块 KSZ8001L是一款性能优良的支持自动协商和手动选择10Mbps/100Mbps速度和全/半双工模式的以太网控制器,完全适用于IEEE 802.3u协议。除了具备其他以太网控制芯片所具有的一些基本功能外,还有它的独特优点: 工业级温度范围(0~+80℃); 1.8V工作电压,功耗低; 高度集成的设计,使用KSZ8001L可以将一个完整的以太网电路设计电路最小化,适合作为智能嵌入设备网络接口; 独特的包页结构,可自动适应网络通信模式的改变,占用系统资源少,从而增加系统效率。 8. 无线网模块 无线网卡选用RT5370芯片,支持IEEE 802.11b/g/n协议。WiFi网络可以将有线网络信号转换成无线网络信号,向计算机、手机、PAD等设备提供无线热点信号连接。 RT5370是设有USB 2.0接口的系统单芯片(SoC),IEEE 802.11n WiFi 数据传输率最高可达 150Mbps。RT5370 采用整合式IEEE 802.11n基频及介质访问控制(MAC)架构、功率放大器及低噪声放大器,并备有传输接收及天线分集开关,再配合优化的射频架构及基频算法,不仅带来卓越的效能表现,还提供了可靠且低功耗的处理能力。 3.4存储模块设计 本嵌入式教学实验系统可通过外插TF卡存储数据。TF卡又称Micro SD卡,是一种超小型卡(11mm×15mm×1mm),约为SD卡的1/4。TF和SD都是闪存的一种,可经SD卡转换器后,当SD卡使用。利用适配器可以在使用SD作为存储介质的设备上使用。TF卡主要是为手机拍摄大幅图像以及能够下载较大的视频片段而开发研制的。本系统采用的是金士顿8GB Micro SD卡来存储视频数据。系统采用翻盖式的TF卡卡座,向内按可插拔卡,向外拖可锁定卡盖,相比其他卡座更不易损坏。卡座的接入电路如图39所示。 图39卡座的接入电路 3.5温度/湿度模块设计 本嵌入式教学实验系统通过温度/湿度计测量本地的温度和湿度,选用DHT11 数字温度/湿度传感器,如图310所示。 图310DHT11数字温度/ 湿度传感器 DHT11数字温度/湿度传感器是一款含有已校准数字信号输出的温度/湿度复合传感器。它应用专用的数字模块采集技术和温度/湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个 NTC 测温元件,并与一个高性能 8 位单片机相连接。因此该产品具有品质卓越、响应超快、抗干扰能力强、性价比极高等优点。产品为 4 针单排引脚封装,连接方便,可根据用户需求提供特殊封装形式。每个 DHT11 传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式存储在 OTP 内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可超过20m,使其成为各类应用甚至最为苛刻的应用场合的最佳选择。温度/湿度传感器的接入电路如图311所示。 图311温度/湿度传感器接入电路 3.6超声波模块设计 本嵌入式教学实验系统通过在超声波测距传感器前放置物品,进行测距实验。选用的是HCSR04超声波测距模块,如图312所示。 HCSR04超声波测距模块可提供2~400cm的非接触式距离感测功能,测距精度高达3mm; 模块包括超声波发射器、接收器与控制电路。电路连接图如图313所示。 图312HCSR04超声波测距模块 图313电路连接图 3.7WiFi模块设计 本嵌入式教学实验系统通过WiFi模块进行数据的收发。WiFi无线通信模块选取的是RALINK公司的RT5370嵌入式模块,如图314所示。使用RT5370作为WiFi模块可以连接150m范围内的无线接入热点 图314RT5370WiFi模块 (基于不同的环境会有不同)。可以简单快速地接收和传输文件。传输速度可达150Mbps,遵循IEEE 802.11b/g或IEEE 802.11n标准,使用2.4GHz频段。 RT5370模块传输距离远,室内最远可达100m,室外最远可达300m。采用USB接口方式进行数据传输,工作电压为3.3V,且模块连接方式简单,共有7个连接脚: 2个数据引脚,2个电源引脚,1个LED指示引脚,1个地,1个脚悬空。连接图如图315所示。 图315WiFi连接电路 3.8ZigBee模块设计 ZigBee无线功能模块是指遵循ZigBee协议的数据无线传输模块,具体由射频通信模块+微处理模块(MCU)+ZigBee无线通信协议构成,一般用来对小数据量的数据进行无线传输,ZigBee通信协议是不收费的,成本低,信息通过ZigBee通信协议进行远程传送,接收端利用ZigBee协议将数据进行收集并解析,然后再传送给PC。ZigBee开发套件如图316所示,ZigBee核心模块如图317所示。 图316ZigBee开发套件 图317ZigBee核心模块 ZigBee模块具有近距离、低复杂度、自组织、低功耗、低数据速率、低成本的特点,非常适宜在交通、家居、安全监控等方面使用。 ZigBee模块最主要芯片采用CC2530,CC2530芯片使用的8051 CPU内核是一个单周期的8051兼容内核。它有3种不同的内存访问总线(SFR、DATA 和CODE/XDATA),单周期访问SFR、DATA和主SRAM。它还包括一个调试接口和一个18输入扩展中断单元。 中断控制器总共提供了18个中断源,分为6个中断组,每个与4个中断优先级之一相关。当设备从活动模式回到空闲模式,任一中断服务请求就被激发。一些中断还可以从睡眠模式(供电模式1~供电模式3)唤醒设备。 内存仲裁器位于系统中心,因为它通过SFR总线把CPU和DMA控制器和物理存储器以及所有外设连接起来。内存仲裁器有4个内存访问点,每次访问可以映射到3个物理存储器之一: 8KB SRAM、闪存存储器和XREG/SFR寄存器。它负责执行仲裁,并确定同时访问同一个物理存储器之间的顺序。 8KB SRAM映射到DATA存储空间和部分XDATA存储空间。8KB SRAM是一个超低功耗的SRAM,即使数字部分掉电(供电模式2和供电模式3)也能保留其内容。这是对于低功耗应用来说很重要的一个功能。 32KB/64KB/128KB/256KB闪存块为设备提供了内电路可编程的非易失性程序存储器,映射到XDATA 存储空间。除了保存程序代码和常量以外,非易失性存储器允许应用程序保存必须保留的数据,这样设备重启之后就可以使用这些数据。使用这个功能,就不需要经过完全启动、网络寻找和加入过程加载已经保存的网络数据。 时钟和电源管理、数字内核和外设由一个1.8V低差稳压器供电。它提供了电源管理功能,可以实现使用不同供电模式的长电池寿命的低功耗运行。有5种不同的复位源来复位设备。 3.9蓝牙模块设计 蓝牙模块可以完成无线数据传输和音频传输。本嵌入式教学实验系统选择的是HM10蓝牙4.0模块,该模块集成了高性能、低功耗的8051微控制器内核,可靠传输距离达200m,无线传输速率达1Mbps。HM10蓝牙模块采用TI CC2541芯片,配置256Kb空间,支持AT指令,用户可根据需要更改角色(主、从模式)以及串口波特率、设备名称、配对密码等参数,使用灵活。HM系列蓝牙模块出厂默认的串口配置为: 波特率9600bps,无校验,数据位8,停止位1,无流控。HM10蓝牙模块如图318所示。 图318HM10蓝牙模块 TMS320DM365有两个串口,因为ZigBee模块和蓝牙模块都需要用到串口,而且还需要一个用于调试的串口,所以增加了一个跳线帽,如图319所示是跳线帽选择电路,用于两个模块间的切换。使用蓝牙通信时,需要用两个跳线帽分别将UART1_TXD和BLE_TXD、UART1_RXD和BLE_RXD连通。 图319跳线帽选择电路 蓝牙模块电路接入原理图如图320所示。 图320蓝牙模块电路接入原理图 3.10加速度模块设计 本嵌入式教学实验系统采用的加速度计是ADI公司的ADXL335加速度计。该传感器是一款小尺寸、低功耗、完整的三轴加速度计,分辨率高(3.9mg/LSB),测量范围为±3g。输出结果为16位二进制补码,通过A/D口与DM365相连。该模块既可以在静止状态下测出加速度值,也可以在运动状态下测出动态加速度值,甚至能测出角度值变化在1°以下的加速度值,是一种可靠性较高的加速度计,如图321所示。 ADXL335加速度计模块连接电路如图322所示,该模块供电电压为3.3V,且满足三轴 图321加速度计的实物图 图322ADXL335加速度计模块连接电路 加速度测量,但是我们只需要两个方向的加速度,故其中一个悬空。另外,加速度计所测得的数据是一个模拟数据,所以要先进行A/D转换。数据线连接在DM365的两个A/D口上,在内部将完成A/D的转换。 3.11按键模块设计 本嵌入式教学实验系统采用4×4键盘,利用DM365的GPIO口中断功能,其中GPIO65~GPIO68用于控制4×4键盘的横列,GPIO69~GPIO72用于控制4×4键盘的纵列。硬件连接原理图如图323所示。 图323硬件连接原理图 3.12继电器模块设计 本嵌入式教学实验系统中使用的继电器型号为SRD05VDCSLC。继电器是一种当输入量变化到某一定值时,其触头(或电路)即接通的控制器。 如图324所示,电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力随之消失,衔 图324电磁继电器构造图 铁就会在弹簧的反作用力下返回原来的位置,使动触点与原来的静触点(常闭触点)释放。这样吸合、释放,从而达到了在电路中的导通、切断的目的。对于继电器的“常开、常闭”触点,可以这样来区分: 继电器线圈未通电时处于断开状态的静触点,称为“常开触点”; 处于接通状态的静触点称为“常闭触点”。 由永久磁铁保持释放状态,加上工作电压后,电磁感应使衔铁与永久磁铁产生吸引产生向下的运动,最后达到吸合状态。 当晶体管用来驱动继电器时,使用9013 NPN三极管,具体电路如图325所示。把继电器应用到我们自己的开发板,当GPIO41输入低电平时,光电耦合器导通,晶体管9013饱和导通,继电器线圈通电,触点吸合,相应的二极管D3点亮,同时能听到继电器发出一声“啪”的响声; 当GPIO41输入高电平时,光电耦合器断开,晶体管9013截止,继电器线圈断电,触点断开,相应的二极管D3熄灭。 图325电路原理图 3.13液晶显示 本嵌入式教学实验系统采用TFT 640×480px的LCD屏。TFT(Thin Film Transistor)即薄膜场效应晶体管,与无源 TNLCD、STNLCD 的简单矩阵不同,它在液晶显示屏的每一个像素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,做到高速度、高亮度、高对比度地显示屏幕信息,大大提高了图像质量。 TFTLCD自带触摸屏,可以用来作为控制输入。本系统中采用I2C驱动触摸屏,电路原理图如图326所示。 图326触摸屏电路 本章习题 1. 本教学实验系统采用了双核处理器,双核指的是哪两个核?每个核主要实现什么功能? 2. 在ARM开发系统中,什么是脱机调试?什么是断点功能?什么是程序单步执行?什么是变量监视功能? 3. 画出ARM嵌入式实验系统总体设计方案。 4. 画出本实验系统开发板硬件架构。 5. 写出DDR的英文含义。其主要功能是什么?一般用来存储哪些信息? 6. Flash的主要功能是什么?一般用来存储哪些信息?相对于DDR器件,Flash的速度是快还是慢? 7. 0x80000000~0x8fffffff的存储空间为多少?