JTAG
测试访问端口:能够提供对处理器内部的访问,并且由此访问系统中的其余部分。
嵌入式两种简单的接口
将外围设备连接到嵌入式微控制器上。通过这两种接口可以连接实时时钟,用于保存参数额非缺失性存储器,传感器接口等。这两种接口不仅容易使用,造价低。
1.串行外围设备接口(serial peripheral interface)SPI
连接外芯片和微控制器的低成本SPI接口
- 同步协议接口:所有传输都参照一个时钟,时钟由处理器产生。
- 多个工作模式
- 有4个信号:MOSI(主出从入),MISO,SCLK,片选I/O,GND
- 基于SPI时钟日历
- 基于SPI的数字电位计
- 用SPI添加一个非易失性存储器(flash:可写入次数有限,适用于记录数据)
- 用SPI添加一个参数存储器(EEPROM)
2.内部集成电路(inter integrated circuit)I2C
I2C总线是用两根线来连接多支路总线中的多个设备。这种总线是双向的,低速的,并与公共时钟同步比SPI慢
- 利用I2C接口在设备间进行连接的两根线是SDA(串行数据),SCL(串行时钟),都是开漏,通过上拉电阻接到正电源。
- 空闲时,SCL,SDA都是高电平,只有SDA为低电平时。接着SCL也变为低电平时,才开始I2C的数据传输。当SDA和SCL都为低电平时,就是告诉总线所有接受设备数据包开始传输了,在SCL变为低电平后,SDA才发送第一个有效数据位。最后SCL为高,接着SDA为高,传输结束。
- 总线上每个设备都有唯一的地址,数据包传送时先发送地址位,接着才是数据。7个地址位加一个指示位,指示位为0则为写,为1,要求从机将数据发送回主机。
- I2C连接小显示设备
- I2C连接实时时钟
串口
串口:嵌入式系统通过无所不在的串口与外面的世界连接起来。其最简单的形式是通用异步收发器(universal asynchronous Receiver Transition,UART)
所有的串口都要在发送数据端将并行数据转换为串行比特流,而在接收端反过来,也就是将串行比特流转换为并行数据。
-
UART的功能模块图,它由两部分组成:一个将串行比特流转换为微处理器可以使用的并行数据的接收器(Rx),和一个将来自微处理器的并行数据转换为串行形式进行发送的发送器(Tx)。
-
向添加一个RS-232C接口很容易,大多数微控制芯片都内置了UART,因此所需要的仅仅是一个外部电平转换器来将串行传输的数据转换为RS-232C数据和将RS-232C数据转换为串行传输的数据
-
Maxim开发了大量的接口芯片,可以大大简化设计过程,MAX3222是一个很好的选择。
-
UART《——》MAX3222《——》RS232连接器
-
如果处理器没有UART,MAX3100是个通用的UART,可以用它通过SPI接口向计算机添加RS-232C或RS-485接口,还支持IrDA协议。
-
IrDA红外接口
- RS-232C接口实现
USB
通用串行总线(Universal Serial Bus)
- RS-232C存在很多问题和限制,让两个设备RS232并不是很容易,你需要正确的电缆,连接器的类型也要正确,还要手动调节通信参数,数据传输速率,奇偶校验的类型以及握手方式。
- 而通用串行总线是解决这些问题的办法,USB让外设和计算机使用标准协议以标准方式进行连接,并且使外设即插即用,将RS232逼到了危险的境地。
- USB支持对打印机,鼠标,游戏杆,扫描仪,数码相机和其他设备的连接。
- 开发相对RS-232要复杂
- 规范有两种:1.0:12~1.5Mbps ,2.0:480Mbps
- 星型拓扑结构,主机定时对集线器状态查询
- 当一个新设备接入一个集线器中,这个集线器向主机改变状态,主机发命令使其端口有效并进行重新设置。
- 设备响应,主机收到设备信息,根据信息,主机操作系统确定对设备使用哪种驱动,移走时,主机从资源列表中删除设备,主机对USB设备的探测和识别叫做总线列举
-
USB包
USB数据传输有四种类型:- 控制传输对总线和总线上的设备进行设置,返回状态信息
- 块传输对数据进行异步发送
- 同步传输实时性要求高,如送往一个输出设备的音频数据,同步传输是单向的
- 中断传输用来在一定的时间片发送数据,时间片为1-255ms
数据在USB之间以包的形式传输,一个传输由一个或多个包组成,一个包内有1个SYNC字节+1个PID(包ID)+内容(数据,地址)+1个CRC字段
其类型有四个:令牌,数据,握手,先导包,如图:
-
物理接口
USB线- Vbus:设备电源(5V),红色
- D+:差分数据线 ,绿色
- D-:查分数据线,白色
- GND:电源和信号地,黑色
-
接口实现
在嵌入式系统中实现USB可能方法是用USB-to-SPI桥接器,比如Atmel AT76C711,这个芯片是带USB子系统的AVR处理器,被设计用来担任主机处理器的从USB控制角色,- 有2K数据RAM,
- 2K包处理的双口RAM,
- 16K程序RAM,
- 内置DMA控制器,
- 1个上行USB端口,
- 独立兼容的TrDA的UART和SPI。
如果使用的处理器有总线接口,可以使用芯片USS-820D来添加USB:
- XTAL1,XTAL2是连接一个12MHz晶体的引脚
- D0-D7直接和处理器的数据总线相连
- A0-A4和处理器的信号线相连,地址位用来选择内部寄存器。
网络
你将看到通过增加一个局域网(local area network,LAN)接口来把你的嵌入式计算机和现实世界连接起来。现在使用的网络种类繁多,他们有些很常见,有些不常见。我们接下来分别看一下控制器局域网络(controller area network,CAN)和以太网(Ethernet)
-
CAN
CAN适用于电气干扰和条件状况比较差的地方,是一种在电气恶劣的环境中可以选择的网络。- 飞利浦公司生产了一种CAN驱动器:PCA82C250T,它与有CAN接口的信号连接,引脚分别为:CAN-TX,CAN-RX。
- DSP56805有两个CAN接口信号:MSCAN-TX和MSCAN-RX,分别是CAN的发送器和接收器。
- CAN接口也是9个引脚:
- 保留
- CAN_L
- 接地
- 保留
- 保留
- 接地
- CAN_H
- 保留
- V+(可选择电源)
-
以太网
任何一个人,即使与计算机关系甚远,只要接触了计算机,就一定听说过以太网。20世纪70年代早期在施乐公司PARC研究中心开发出来的局域网标准已经在每一个可能应用中找到它的位置,而且随着时间的推移,已经包含从无线网络(802.11)到千兆以太网的许多标准。更高的速度的接口需要特别注意PCB设计和EMC(电磁兼容)问题。
一个AT90S8515 AVR微处理器,再增加一个以太网接口和一些大容量的闪存,就拥有了一个简单的Web服务器。- 添加一个以太网接口:
cirrus Logic公司生产了一种单芯片的以太网控制器CS8900A。你的计算机很可能就是一个带有8个引脚的RJ-45连接器的10/100BASE-T ,电缆连接使用的是UTP 5类电缆,更常见的叫法是CAT5。
- 添加一个以太网接口:
- RJ-45连接器信号:
| 引脚 | 信号名称 | 用途 | 颜色 |
|---|---|---|---|
| 1 | TD+ | 发送数据 | 白/橙色 |
| 2 | TD- | 发送数据 | 橙色 |
| 3 | RD+ | 接收数据 | 白/绿色 |
| 4 | NC | 不连接 | 蓝色 |
| 5 | NC | 不连接 | 白/蓝色 |
| 6 | RD- | 接收数据 | 绿色 |
| 7 | NC | 不连接 | 白/棕色 |
| 8 | NC | 不连接 | 棕色 |
如图CS8900A通过一个隔离的变压器连接到计算机的10BASE-T端口上。一个20MHz的晶体为CS8900A提供时钟。这个晶体在两个引脚XTAL1和XTAL2之间,这两个引脚分别通过一个33pF的电容接地
芯片支持16位的IAS总线,与处理器连接注意大小端。
CS8900A还支持一个串行EEPROM。这个存储器可以保存CS8900A的配置信息和系统唯一的物理地址。如图