微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > Microchip UNI/O总线技术及其应用

Microchip UNI/O总线技术及其应用

时间:08-08 来源:互联网 点击:

摘要:UNI/O总线是Microchip公司开发的一种创新型单I/O总线。本文分析了该总线的特点和通信原理,以11XXX系列EEPROM存储器的应用为例,详细介绍了UNI/O从器件与单片机的接口技术,给出了硬件连接电路和存储器读写操作的程序流程。
关键词:UNI/O总线;11XXX系列EEPROM;单片机;接口技术

引言
随着嵌入式系统小型化的趋势,市场对减少器件间通信所用的I/O引脚数的需求与日俱增。Microchip科技公司开发的UNI/O总线正满足了这一需求,这个低成本且易于实现的解决方案,仅需要使用一个I/O引脚就可实现主从器件之间的通信。

1 UNI/O总线介绍
1.1 UNI/O总线的特点
UNI/O总线具有如下特点:
①UNI/O总线采用曼彻斯特编码,只需一根信号线SCIO就可以实现数据的串行传输和同步控制。
②UNI/O总线是一种单主型总线。主器件负责肩动和控制总线上的所有操作,决定总线的工作速度。主器件通常由单片机、ASIC等充当。
③UNI/O总线具有双向通信能力。有主发送从接收和从发送主接收两种工作方式。
④UNI/O总线速度为10~100kbps。
⑤UNI/O从器件必须具有空闲模式和待机模式,也可选择具有保持模式。
1.2 UNI/O总线的帧格式
1.2.1 位值定义
由于采用的是曼彻斯特编码,所以其位值由佗周期中间的信号跳变方向决定。UNI/O总线规定:从高到低的跳变是0,从低到高的跳变是1。
1.2.2 帧结构
在UNI/O总线上进行通信时,指令、数据和地址的传送都以字节为单位。字节传送时,高位在前,低位在后,前一个位之后立即传输下一个位,位与位之间没有延迟。字节之后必须发送应答序列,进行主从应答。图1给出了通常情况下使用的基本字节帧结构。

a.JPG

(1)主应答位
由主器件发送,取值为1或0。为1时称之为MAK,MAK告知从器件指令执行将继续;为0时称之为NoMAK,NoMAK用来结束当前指令,此后如有必要,从器件可以启动相应的内部处理。
(2)从应答位
由被选定作为通信对象的从器件发送。该位为1时称之为SAK,SAK表明其前面的操作已成功完成;非1时称之为NoSAK。在从器件被选定之前,由于无从器件应答,从应答位应为NoSAK。在从器件被选定之后,NoSAK用来表明通信产生了错误。
另外,UNI/O总线也考虑了对主器件的中断功能的支持。当主器件与具有保持模式的从器件进行通信时,如果主器件在下一个MAK位周期时间内持续拉低SCIO,从器件就进入了保持模式。要维持在保持模式应继续使SCIO为低电平。当从器件处在保持模式时,主器件就可以进行对其他I/O设备的中断处理工作,中断处理结束后可通过发送MAK来终止保持过程,并继续之前的通信。图2给出了包含保持过程的字节帧结构。

b.JPG

1.3 UNI/O总线的命令序列
UNI/O总线的命令序列是指完成一条指令的执行主从器件,需要在总线上传送的各种信号和字节帧的有序组合。在UNI/O总线系统中,一条指令的执行过程必须包括:总线准备、主从同步、从器件选择、指令传输和指令执行等环节。
1.3.1 总线定义的信号
(1)待机脉冲
待机脉冲是由主器件驱动SCIO到高电平状态,并保持此状态600μs以上形成的脉冲信号。待机脉冲通常用来通知总线上的所有从器件进入待机模式,也可以用来提前终止一条指令的执行。在执行一条指令时,如果是第一条指令,或者要选择的从器件与上一条指令不同,或者上一条指令的执行过程发生了错误,本条指令的执行都必须从产生待机脉冲开始。
(2)TSS信号
TSS信号是由主器件驱动SCIO到高电平状态,并保持此状态10μs以上形成的脉冲信号。在一条指令成功执行之后,若还要执行下一条指令来对同一个从器件进行操作,则后一条指令执行过程的第一步只需产生一个TSS信号,而不需要再产生待机脉冲。这样,通信效率会更高。
1.3.2 特殊功能字节帧
(1)起始头
起始头用来使从器件进入正常工作模式,并同步从器件内的时钟。起始头由5μs以上的持续低电平脉冲和紧跟其后的8位编码“01010 101”组成。所有的从器件都可以从起始头中获知位周期的长短,并以此为依据调整内部时钟,实现主从同步。起始头之后的主应答位应为MAK,从应答位正常情况应为NoSAK。
(2)地址帧
地址帧用于选择总线上特定的从器件进行通信。从器件地址有8位和12位两种类型,由4位系列码和4位或8位从器件码组成。8位地址的传输只需一个地址帧,正常情况,其应答序列由MAK和SAK组成。12位地址的传输需要两个字节帧:高地址字节帧和紧跟其后的低地址字节帧。正常情况,低地址字节帧中的应答序列应该由MAK和SAK组成,高地址字节帧中的应答序列则由MAK和NoSAK组成。
(3)指令帧
指令帧用于传送指令,由指令编码和应答序列组成。指令及其编码往各种UNI/O从器件中定义。指令帧中的主应答位应根据指令是否要求传输其他数据字节确定。当指令要求传输其他数据字节时,该位为MAK,否则为NoMAK。从应答位正常情况下为SAK。
1.3.3 UNI/O总线的命令序列
图3所示的是用于执行8位地址从器件指令的命令序列。其中字节帧的数量在总线规范中未进行限制,只要前一个字节帧中的主应答位为MAK就表示期望传输下一个字节帧。不过,字节帧的实际数量必须符合从器件指令的使用规范。在此前提下,可以由用户程序根据其功能决定。用于执行12位地址从器件指令的命令序列如图4所示。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top