积木式数据传输实验平台中串行通信接口协议的选择
2013-04-29孙群中李学海
孙群中 李学海
摘 要: 本文介绍MCU应用开发中常用的串行通信接口协议,并结合各接口协议在本项目中的应用进行比较分析和选择,确定通用积木块的串行通信接口协议,以及其他接口协议的实现方法。
关键词: 积木式数据传输 实验平台 串行通信 接口协议
在我们承担的《基于MCU的积木式数据传输实验平台的研究》项目中,要实现一些以MCU为核心的具有不同功能的模块电路——积木块,这些积木块通过各种不同的接口,可以像搭积木一样组合实现各种不同形式的数据传输。
在积木块内部或积木块之间进行串行通信,就得根据具体的需要,事先确定好串行通信接口协议。为方便项目的开发和应用,我们尽量使用标准化的接口协议,如UART,I2C,SPI等。下面笔者就简单介绍MCU应用开发中常用的串行通信接口协议,并结合各接口协议在本项目中的应用进行比较分析和选择。
1. 常用的串行通信协议
(1)UART总线协议
UART的全称是“Universal Asynchronous Receiver/Transmitter”,意为“通用异步收发传输器”,是一种异步收发传输器,是电脑硬件的一部分,广泛应用于MCU应用开发中。UART可以将数据在串行通信与并行通信间进行传输转换,即在MCU内部以字符为单位进行并行处理,而在线路上逐个比特串行传输。UART可用于全双工点对点通信,一条线接收(RX),另一条线发送(TX)。
通常MCU的UART接口不能直接和DTE(Data Terminal Equipment,数据终端设备)设备对接,需要通过电平转换芯片将UART接口的TTL电平转换成RS232C、RS485或RS422的接口电平,然后才能和具有对应接口的DTE设备对接。
由Motorola公司推出的串行通信接口SCI(Serial Communication Interface)是一种UART接口。
(2)I2C总线协议
I2C的全称是“Inter-Integrated Circuit”(在中国一般读作“I方C”,也可写作“IIC”),意为“内部整合电路”,是由PHILIPS公司开发的两线式串行总线,用于连接MCU及其外围设备。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。每个连接到I2C总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器。I2C使用多主从架构,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏。AVR序列单片机内部集成TWI(Two-wire Serial Interface)总线,是对I2C总线的继承和发展,可以看做一类。
(3)SPI总线协议
SPI的全称是“Serial Peripheral Interface”,意为“串行外设接口”,是Motorola公司首先在其MC68HCXX系列处理器上定义的一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。SPI接口主要应用在EEPROM、FLASH、实时时钟、AD转换器上,还有数字信号处理器和数字信号解码器之间。
在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。在多个从器件的系统中,每个从器件需要独立的使能信号。
(4)USART总线协议
USART全称是“Universal Synchronous/Asynchronous Receiver/Transmitter”,意为“通用同步/异步收发传输器”,是一个高度灵活的串行通信设备。USART相对UART来说是在异步通信的基础上还有同步的功能,USART能够提供主动时钟。USART可以配置成UART或SPI模式,AVR USART对AVR UART完全兼容。
(5)1-wire总线协议
1-Wire协议是美国Maxim/Dallas公司开发的一种单线总线协议,简称“单总线”。系统由一台主机和若干台从机通过一条线连接而成,主机由此完成对从机的寻址、控制、数据传输甚至供电(当然一条功能线之外还有地线,如需由主机供电,还要有电源线)。1-Wire协议采用单根信号线,既传输时钟,又传输数据,而且数据传输是双向的。它具有节省I/O口线资源,结构简单,成本低廉,便于总线扩展和维护等诸多优点。
1-Wire协议适用于单个主机系统,控制一个或多个从机设备。当只有一个从机位于总线上时,系统可按照单节点系统操作,而当多个从机位于总线上时,则系统按照多节点系统操作。
主机一般由MCU组成,从机由Maxim/Dallas提供的1-Wire器件构成,每个1-Wire器件内嵌唯一的地址码,以实现主机对不同从机的寻址。主机可通过各种方式联入计算机系统。作为一种单主机多从机的总线系统,在一条1-Wire总线上可挂接的从器件数量几乎不受限制。
(6)USB总线协议
USB全称是“Universal Serial Bus”,意为“通用串行总线”,是1994年底由Intel、Compaq、Digital、IBM、Microsoft、NEC、Northern Telecom等七家世界著名的计算机和通信公司共同推出的一种新型接口标准。USB具有传输速度快(USB1.1是12Mbps,USB2.0是480Mbps,USB3.0是5 Gbps),使用方便,支持热插拔,连接灵活,独立供电等优点。因为USB已经替代并行和串行接口,成为PC的标配,所以MCU与PC之间的连接越来越多地采用USB接口,一般是通过USB转UART电路,将MCU的UART与PC的USB连接起来。
(7)SDIO总线协议
SDIO的全称是“Secure Digital Input and Output”,意为安全数字输入输出,是SD型的扩展接口。SDIO除了可以接SD卡外,还可以接支持SDIO接口的设备,插口的用途不止是插存储卡。支持SDIO接口的PDA、笔记本电脑等都可以连接像GPS接收器、WiFi或蓝牙适配器、调制解调器、局域网适配器、条形码读取器、FM无线电、电视接收器、射频身份认证读取器或者数码相机等采用SD标准接口的设备。
SDIO协议可以支持三种操作模式:SPI、SD一线,SD四线(接口通过寄存器来配置)。SPI速度较低,一线或者四线需要寄存器来选择,高速模式下需要四线支持。
(8)CAN总线协议
CAN的全称为“Controller Area Network”,意为控制器局域网,是由研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO11898),是国际上应用最广泛的现场总线之一。
CAN总线是德国BOSCH公司从20世纪80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。通信速率可达1MBPS。
(9)GPIO总线协议
GPIO的全称为“General-Purpose Input/Output ports”,意为“通用IO口”,即可以根据使用者的需要将某个接口引脚设置成输入、输出或其他特殊功能。GPIO的功能类似8051的P0~P3。GPIO是一种非常重要的I/O接口,具有使用灵活、可配置性好、硬件代价小等优点。
(10)RJ45 以太网接口协议
10/100 Base-T RJ45接口是常用的以太网接口,支持10兆和100兆自适应的网络连接速度,常见的RJ45接口有两类:用于以太网网卡、路由器以太网接口等的DTE类型,还有用于交换机等的DCE类型。RJ45接口通常用于数据传输,最常见的应用为网卡接口。
RJ45是各种不同接头的一种类型(例如:RJ11也是接头的一种类型,不过它是电话上用的);RJ45头根据线的排序不同分为两种:一种是橙白、橙、绿白、蓝、蓝白、绿、棕白、棕,另一种是绿白、绿、橙白、蓝、蓝白、橙、棕白、棕。因此使用RJ45接头的线也有两种即:直通线、交叉线。
MCU控制板集成或外扩网卡模块后,就能直接接入到计算机网络。
2.各接口协议的比较和选择
(1)本项目中串口通信应用分析
第一,在本项目的应用中,串口通信分为以下三种。
①积木块内部即MCU与外围器件间的串口通信
对于积木块内部的串口通信,可选用的接口协议有UART、I2C、SPI、USART、1-wire、SDIO和GPIO等。
②积木块之间的串口通信
对于积木块之间的串口通信,可选用的接口协议有UART、I2C、SPI、USART、SDIO、CAN、GPIO和RJ45等。
③积木块和上位机PC之间串口通信
对于积木块和上位机PC之间串口通信,可选用的接口协议有UART、USB和GPIO等。
第二,在本项目的应用中,串口通信按照拓扑结构可以分为以下三种。
①点对点通信。可选用的接口协议有UART、I2C、SPI、USART、1-wire、SDIO、CAN、GPIO和RJ45等。
②一主多从通信。可选用的接口协议有I2C、SPI、USART、1-wire、SDIO、CAN和GPIO等。
③多主从通信。可选用的接口协议有I2C、CAN和GPIO等。
(2)本项目中串口通信接口协议的选择
在实现各种功能的积木块时,遵循一条最基本的原则:兼顾积木块实现的通用性和复杂性。即有选择地将某几个功能做到一个积木块上,既减少积木块的复杂性,又增强它的通用性。这样根据需要做出几种通用的积木块,加上相应的外围器件就能实现相应的某项功能。
具体实现一个积木块还得选择通用性较好的MCU和选定功能的相关器件,这二者是相互影响的。比如器件的接口是SPI的,MCU就应该有相应的SPI接口。反过来,先选定MCU,选择器件时就要注意选择MCU具有的接口类型。
实践证明,通用性好的积木块至少应该具有UART、I2C、SPI和一定数量的GPIO接口。另外,为方便和上位机PC通信,最好有USB接口。
其余接口的实现有三种方式:
①在一些专用的积木块上实现
②在通用性积木块上通过GPIO配置实现
③通过接口转换积木块来实现
总之,在选择串口通信接口协议时,以满足积木块基本功能为目的,适配MCU或外围器件的接口类型。
参考文献:
[1]赵振德,张建新.单片机原理及实验/实训.西安:西安电子科技大学出版社,2009.
[2]耿仁义.新编微机原理及接口技术.天津:天津大学出版社,2006.
[3]赵宏,王小牛,任学惠.嵌入式系统应用教程.北京:人民邮电出版社,2010.
[4]李群芳,肖看.单片机原理、接口及应用——嵌入式系统技术基础.北京:清华大学出版社,2005.
[5]刘海成.AVR单片机原理及测控工程应用——基于ATmega48/ATmega16.北京:北京航空航天大学出版社,2009.
河北省高等学校科学技术研究项目资助/Supported by science and technology research projects of colleges and universities in Hebei province 编号:Z2010316)
项目名称:基于MCU的积木式数据传输实验平台的研究 项目编号:Z2010316
项目名称:多用途广适配模块化单片机综合开发实验平台 项目编号:Z2010315
河北省科技计划项目 项目名称:基于ARDUINO的物联网和嵌入式技术开发和实训平台的创建 项目编号:12210331