范文一:aurora协议
文献综述
摘 要
本综述介绍了高速串行通信的现状, 并简要介绍了 Aurora 通信协议的特点, 发展和现状。着重介绍了 Aurora 协议的原理,接口及应用等相关知识。
关键词:Aurora;FPGA; 高速串行通信
Abstract
This article introduces the actuality of high-speed serial communications and the characters ,developments and actuality of the Aurora protocol.This article especially introduces the
theories ,interfaces , applications and some other knowledges. Key words:Aurora;FPGA;high-speed serial communication
一、引言
在典型的嵌入式系统中提高处理器的速度是改善系统性能的解决方案之一。 高速缓存和更先进的处理器架构的使用。不断提高着微处理器的性能, 但研究 表明处理器总线频率的增长速度相对处理器内核性能的增长速度较慢, 且两者之 间的差距正在不断扩大。 处理器速率的提高无助于改进处理器和外设芯片之间的 连接或多处理器系统中多个处理器间的连接。 传统的分层共享总线已无法满足未 来高性能嵌入式系统的 I/O性能需求和快速高效的信号处理和数据传输。系统互 连, 即系统内的不同组件之间彼此通信的速率, 已成为制约嵌入式系统性能提高 的瓶颈 [5]。当前,在系统级互连设计中, 高速串行 I/O技术迅速取代传统的并行 I/O技术正成为业界趋势。 高速串行 I/O技术能够带来更高的性能、 更低的成本和 更简化的设计。人们已经意识到不论是单端并行 I/O还是差分并行 I/O, 发展到 今天都已经达到了它们的物理极限, 无法为超过 1 Gbit/s的数据速率提供可靠 而低廉的实现方法。 高速串行 I/0技术的发展克服了并行 I/O的速度瓶颈, 被越来 越广泛地应用于各种系统设计中,包括 PC 、消费电子、海量存储器、服务器、通 信网络、 工业计算和控制、 测试设备等。 迄今业界已经发展出了多种串行系统接 口标准, 例如 PCI — Express 、 串行 RapidIO 、 InfiniBand 、 千兆以太网、 10Gbit/s以太网 XAUI 、串行 ATA 等。
高速串行 I/O日益受到重视, Xilinx 公司也推出了用于高速串行 I/O的 Aurora 协议。 Xilinx 公司的 FPGA (现场可编辑门阵列)芯片中内置了 RocketIO 收发器,提供从 400Mbps 到 83.2Gbps 的传输速率。同时, FPGA 由于其灵活性和低 成本为高速串行接口的设计带来了很大的灵活性。
二、 Aurora 协议
1. Aurora 简介
Aurora 协议是由 Xilinx 公司提供的一个开放、免费的链路层协议,可以用
来进行点到点的串行数据传输, 具有实现高性能数据传输系统的高效率和简单易 用的特点。 Aurora 允许器件之间以下图所示的方式通过多个 MGT 通道绑定完成 通信。 单个 GTX 通道可实现 750Mbit/s-6.5Gbit/s的通信传输, 多个 GTX 通道的 组合可实现几十 Gbit/s 甚至上百 Gbit/s的通信传输。 图 1中, MGT 到 MGT 之间 的一个链接被称为“弄”
图 1 aurora协议应用举例 [15]
Aurora 通过为 MGT 提供透明的接口而将其分装缩小,允许以太网和 tcp/ip等 专利技术和标准协议的上层在其顶部运行并提供方便的访问。 Aurora 核为用户提 供了一个透明的物理层接口, 它支持任何上层私有的或符合工业标准的协议, 如 TCP/IP、 Ethern- et等。
此易用、 预定义的协议只需很少时间即可与现有的用户设计集成 [12]。 但也存 在一些不完善的地方:aurora 不具备地址机制, 不能支持切换功能, 没有规定数 据有效载荷内校正。
2. Aurora操作
Aurora 协议将复杂的 RocketIO 控制结构转化为简单的用户接口, 而用户接口
使用尽可能少的信号连接到用户的应用设计中,并提供一套 LocalLink 兼容的输 入输出信号来接收和发送用户数据,其接口信号如图 2所示。
图 2 Aurora核的用户接口 [9]
在数据传输过程中,用户通过控制信号控制协议引擎完成如下操作:封装 /解封装数据并使其在串行通道中传输; 暂停数据传送 (插入空闲状态 ) 。 协议引擎 中的发送帧将待传输的数据封装在通道协议数据单元 (PDU)中。对我们使用的 Aurora 协议引擎来说,一个串行通道就由 1个“弄”组成。这里,“弄”是设计 中每个 MGT 的数据路径标识。插入空闲状态的目的是为了填充“弄”来完成字边 界对齐。 图 2中的 REM 总线 (data remainder bus)用来表示在 PDU 传送最后一个 数据期间有效的字节数。实际的字节数等于 REM 总线的值加 1。
用户可以根据设计需要改变通道 PDU 的长度,它反过来也影响数据传输的效 率。更长的 PDU 可以实现更高的传输效率,但同时也降低了传输的可靠性。用户 可通过控制 TX_ SOF_N和 TX_EOF_N信号来调整 PDU 长度。
在传输过程中, 用户可复位 TX_SRC_RDY_N信号来产生数据停顿。 在停顿期间 , 发送器发送空闲序列。 重新置位 TX_SRC_RDY_N, 就可以恢复数据传输, 用户可无 限制地插入停顿。
接收帧的功能与发送帧相反,将数据从“弄”中提取出来。在接收过程中, 协议引擎自动完成以下功能:检测和丢弃控制字节;置位 PDU 绑定信号;从“弄” 中恢复数据;重新装配数据并送往 RX_D[0:31] 总线。
3. Aurora 的流控机制
Aurora支持可选的数据流量控制,以防止由于双方源端和宿端速率不同而 造成的数据丢失。 Aurora 支持两种流控机制:故有流量控制(Native Flow Control )和用户流量控制(User Flow Control)。
固有的流量控制:NFC 操作有两个状态机控制:tx 和 rx 。 Rx 状态机将空 rx fifo 的状态。当有溢出危险时,它会生成 NFC pdu,要求对方在特定的时间内暂 停传输用户 pdu 。 Tx 状态机通过在要求的时间内等待予以相应,从而使 rx fifo从一处状态恢复。发送 NFC 要求的同时, tx 状态机营销出任何往返延迟。理想状 态下, NFC 要求在接收 fifo 溢出前发出。 您可以将 NFC 暂停设置为 0到 256, 最大暂 停为无限。 NfC 暂停止是非累积的,新的 NFC 会覆盖旧的值 [12]。
用户流量控制:用户无需等待数据的结束, 即可发送 UFC 信息。 UFC 信息与普 通的数据共享数据通道,但有更高的优先级。 UFC 消息由用户自定义和解析。
4. Aurora 的核参数
5. 表 1. 核参数
参数 描述 支持的值
弄 在通道中应用的 GTP/GTX收发器 的数量 Virtex-5 设备 GTP/GTX: 1 到 16 Virtex-6 设备 GTX: 1 到 16 Spartan-6 设备 GTP: 1, 2, 4
表 1 核参数(续)
弄宽度 Virtxe-5 FPGA GTP收发器在核 心中设置使用 2字节构造数据。 Virtex-5/Virtex-6 FPGA GTX 收发 器和 Spartan-6
FPGA GTP 收发器设置使用 2字 节和 4字节 SERDES Virtex-5 设备 GTP: 2字节 GTX: 2/4字节 Virtex-6 设备 GTX: 2/4 字节 Spartan-6 设备 GTP: 2/4 字节
方向 CORE Generator 软件生成的通道 的类型,可以是全双工的,单一的 TX 方向,单一的 RX 方向,或是在一 个 GTP/GTX收发器上设立两个单独 的单一的模块(一个用于 TX ,一个 用于 RX ) Full-Duplex Simplex-TX Simplex-RX Simplex-Both
后通道 核 Aurora 8B/10B心有两种单一 的后通道:
·Siderbands:通过对方发送的 Siderbands 设置单一 TX 状态转换 ·Timer:不同于 Siderbands, 在 初始化时通过内置的计时器完成单 一 TX 状态转换 Sidebands Timer
表 1核参数(续)
流控制 流控制的使能。有两种类型 : ·自带流控制(NFC ) :NFC 使全 双工接收器可以控制输入数据的速 率。完成模式,当帧完成时, NFC 强 制空值。 立即模式, 一旦流控制信息 到达, NFC 强制为空值。
·用户流控制(UFC ) :UFC 使应 用程序可以通过通道相互发送简短 的高优先级的信息。
None
NFC Immediate NFC Completion UFC
UFC 和 NFC Immediate
UFC 和 NFC Completion
接口 用户可以指定一到两种接口:·数据帧:用户数据帧接口是本 地连接适应的。 初始化后, 数据帧可 以通过 Aurora 通道发送。用户数据 帧接口倾向于更大, 因为有广泛的包 容字队列和无逻辑控制特征。 ·数据流:用户数据流接口使得 用户可以开启一个单独的无界限的 数据帧。 初始化完成后, 用户通过一 个简单的寄存器接口和一个空值信 号向数据帧中输入数据。
Framing (本 地 连 接 )
Streaming
表 1核参数(续)
线速率 线速率规定了收发器工作时的 速度。 该参数与 Aurora 8B/10B核心 的性能有关。 好的性能会有更高的线 速率。详细介绍请参考 LogiCORE IP Aurora 8B/10B v5.1 User Guide
Virtex-5设备 GTP 收 发 器 :500 Mbps 到 3.75 Gbps GTX 收 发 器 :50 Mbps 到 6.5 Gbps Virtex-6 LXT/SXT 设备
GTX 收 发 器 :750 Mbps 到 6.5 Gbps Virtex-6 CXT 设备 GTX 收 发 器 :750 Mbps 到 3.75 Gbps Virtex-6 Lower Power 设备
GTX 收 发 器 :750 Mbps 到 5.0 Gbps Spartan-6 设备 GTP 收 发 器 :614 Mbps 到 3.125 Gbps
表 1 核参数(续)
收发器参考时 钟频率
CORE Generator 软件根据参考
参数值设置以下设备的参考时钟速
率 Virtex-5, Virtex-6, and
Spartan-6 FPGAs.
详细介绍请参考 LogiCORE IP
Aurora 8B/10B v5.1 User Guide。
根据选择的线速率 和下列设备可用的时钟 乘 法 器 设 置 合 适 的 速 率:
? Virtex-5 FPGA GTP/GTX
收发器
? Virtex-6 FPGA GTX
收发器
? Spartan-6 FPGA GTP 收发器
收发器参考时 钟
可以根据种种专用和非专用的
时钟网络赋予 GTP/GTX收发器一个
参考时钟。 如何为应用程序选择一个
最佳的参考时钟网络, 详细介绍请参
考 LogiCORE IP Aurora 8B/10B v5.1
User Guide。
Virtex-5 设备: GTPD/GTXD clocks Virtex-6 设备: GTXQ clocks Spartan-6 设备: GTPD clocks
表 1 核参数(续)
参数 描述 支持的值
收发器放置 CORE Generator 软件提供了一个 图形接口
使用户可以为特殊的 GTP/GTX 设计弄 . 请参考 The Virtex-5 FPGA RocketIO GTP Transceiver User Guide, Virtex-5 FPGA RocketIO GTX Transceiver User Guide, Virtex-6 FPGA GTXTransceivers User Guide, 和 Spartan-6 FPGA GTP Transceivers User Guide 以 及 GTP/GTX收发器放置指导方针寻找最 佳方式
任何 GTP/GTX收发 器的联合
5. Aurora的应用
Aurora 是一种简单的可扩展的开放协议,支持各种各样的应用。如下 所示:
芯片间通信:使用高速穿行总线代替芯片间的并行总线,可以大大减少 pcb 布线复杂程度和布线层数。
板间通信:aurora 使用标准的 8b/10b编码, 使得 aurora 可以与很多现 有的标准兼容。而且, aurora 的数据传输率和通道个数都是可选的,使 aurora 更加方便用户。
简单的单向模式:在有些应用中,并不需要双向的通信,只需要单向的高速 通信。 Aurora 协议提供了多种方式,只配置单相通路,以节省资源。
ASIC:aurora 不仅仅应用与 FPGA 设计, 还可应用于 ASIC 设计中。 Aurora 的简单性使得它在 FPGA 和 ASIC 中都可以只占用很少的资源。
三、结束语
简单易用的 Aurora 协议由于其可扩展性,可以被广泛应用在各个领域, 为新一代通信及数据网络应用提供了一个可靠的解决方案, 虽然不是最好的, 但 相信随着技术的发展, Aurora 还会不断进步在更多的场合绽放出耀眼的光彩。
参 考 文 献
[1] 冯华亮,串行 RapidIO :高性能嵌入式互连技术 [J];今日电子 -2007年 9期:80
[2] 王勇,林粤伟,吴冰冰等译, RapidIO 嵌入式系统互连 [M],电子工业出版社, 2006:20 [3] 陈剑波, RapidIO 总线技术的研究 [J];计算机与网络 -2005年 9期:48
[4] RapidIO Trade Association, ISO/IEC DIS 18372, RapidIO ? Interconnect Specification Rev. 1.3 [S], 2005.6
[5] 王欣,杨涛, RapidIO 互连技术研究 [J];数字通信世界 -2008年 5期:70,73
[6] 王帆,刘云,串行 RapidIO 在多 DSP 系统中的应用初探 [J];计算机与数字工程, 2008年,第八期:206
[7] 赵博龙, 赵云忠, 孔德岐, RapidlO 互连技术研究及其模型验证 [J]; 航空计算技术, 2009年,第四期:128-129
[8]邓焰,戎蒙恬,基于 FPGA 的 3.125Gbit/s串行通道设计实验 [J];电子工程师, 2004年, 第 11期:16-18
[9]宁元辉,朱光喜,苏钢等,一种 2Gbps 的多数据包透明传输机制 [J];高技术通讯, 2008年第 9期:881-887
[10]侯春雷,唐碧华,胡鹤飞等,基于 Aurora 的 MAC 层帧结构的设计与实现 [J];中国科技 论文在线, 2010年第 1期:58-61
[11]杜旭, 于洋,黄建,基于 FPGA 的高速串行传输接口的设计与实现 [J]; 计算机工程与应 用,
2007年第 12期:94-96
[14]Xilinx, LogiCORE TM IP Serial RapidIO V5.1 User Guide UG503[S], September 19, 2008 [15]Xilinx, LogiCORE TM IP Aurora 8B/10B v5.1 User Guide UG353 (v5.1)[S], December 2, 2009
范文二:KNX总线
ABB i-bus KNX系统介绍
1. 系统结构
图 1 KNX 总线图
在 KNX 系统中,总线接法是区域总线下接主干线,主干线下接总线,系统 允许有 15个区域, 即有 15条区域总线, 每条区域总线或者主干线允许连接多达 15条总线,而每条总线最多允许连接 64台设备,这主要取决于电源供应和设备 功耗。每一条区域总线、主干线或总线,都需要一个变压器来供电,每一条总线 之间通过隔离器来区分。 在整个系统中, 所有的传感器都通过数据线与制动器连 接, 而制动器则通过控制电源电路来控制电器。 所有器件都通过同一条总线进行 数据通信, 传感器发送命令数据, 相应地址上的制动器就执行相应的功能。 此外, 整个系统还可以通过预先设置控制参数来实现相应的系统功能, 如组命令, 逻辑 顺序,控制和调节任务等。
KNX 电缆线由一对双绞线组成,其中一条双绞线用于数据传输,另一条双 绞线给电子器件提供电源。 KNX 有三种结构:线形、树形和星形。
1.1应用:
灯光:灯光控制和调节;
温度控制:供暖,空调系统和通风设备;
阳光保护:百叶窗和卷帘控制;
安防:保安监视;
能源管理:能耗控制;
自动化:中心自动化和远程控制;
通信:远程访问和通信网关;
运行:显示,可操作,监视;
2. 灯光控制应用:开关,调光,灯光恒定控制,自动灯光控制,灯光场景, 1-10V 控制(电子镇流器) ,可寻址数字灯光控制, RGB 彩 灯控制;
图 2 光度调节的方式
上图中,第一条线路使用的是传统的调光器进行调光。
第二条线路中,荧光灯通过电子镇流器来调光,该电子镇流器的输入控制在 0-10V 或 1-10V 之间,而电子镇流器的电压由相应的开关制动器(LR/S2.16.1) 控制输出在 0/1-10V。
第三条线路是利用数字技术,并通过 DALI 电子镇流器来调节灯光亮度。 灯光调节功能:1. 利用符合 ABB i-bus KNX标准的按钮; 2. 利用普通按钮并通过 二进制输入装置 BE/S x.x或通用接口 US/U x.2进行控制; 楼梯灯光控制:通过设置,让楼梯灯光打开,经过预定时间后,自动关闭,也可 以通过按钮让灯光关闭或重新计时;
灯光打开和关闭延时:首先要使能定时功能,然后才能通过时间菜单设置延时, 时间延时可通过时间菜单随时取消。
定时控制:按照定时器功能,控制指定的灯光电路自动打开或关闭。 (一周或一 年的某个时间)
人物在场控制:利用移动探测器感应人物是否在场,并控制灯光打开或关闭。 光线控制与调节:根据日光强度控制或者恒定的光亮度控制。
3. 温度控制:单独室温控制,恒温控制,通风设备控制,排风扇控制,窗户 监控;
4. 阳光保护:卷帘和窗户控制,百叶窗控制,遮光栅控制,窗帘控制,标准 电机接口控制;
定时控制:根据户外亮度控制——早上 8点开, 晚上 8点关闭 (1. 利用 ABL/S 2.1; 2. 利用 LM/S 1.1)
人员在场控制——办公室里通过探测器探测人员是否上下班来 控制窗户开关(1. 利用 ABL/S 2.1; 2. 利用 LM/S 1.1)
移动到指定位置:根据阳光光线, 将百叶窗控制在一定高度度或遮光栅控制 到一定角度, 也可以利用参数预先设置一个位置, 并可以 记录当前的位置。 (1.MDRC JA/S x.x; 2.RC/A x.2) 根据传感器控制:1. 天气:根据户外天气(风,雨,霜等)来控制窗户或天 窗,减少损坏;
2. 温度:通过控制百叶窗,卷帘,遮阳 /雨篷,从而控制进 入房间的阳光光线, 调节室内温度。 (自动防晒, 自动供暖 /降温,夜晚自动冷却)
自动防晒:
图 3 自动防晒原理图
上图中,通过光度传感器感应阳光强弱,并通过制动器自动调节窗户开 /关, 防止阳关暴晒。
自动供暖 /降温:
图 4 自动供暖 /降温原理图
上图中,利用调温器设定一定的温度,并通过移动传感器来探测是否有人员 在场,从而控制供暖设备或空调系统进行调温,并判断是否打开或关闭窗户。 3. 阳光:
防炫目:根据阳光的漫射程度自动调节百叶窗的高度 和遮光栅的角度来符合我们的设置要求。 日光光线改道:通过改变遮光栅的角度,使得光线改 道(比如照射到天花板上) ,这样不 仅不会刺眼, 还可以利用自然光来照 明。
5. 安防:人员和建筑物保护,门和窗户监视,火警,危险和非法入侵通报,技 术故障警报,紧急报警,居住仿真,紧急指示灯;
6. 能源管理:测量并记录能耗,按要求控制灯光,恒温控制(房间温度,供 暖设备,通风口,空调系统) ;
供暖 /通风 /空调系统控制:
图 5 供暖设备阀门控制
上图是供暖设备阀门的控制方式, 其中电动阀门驱动器可以直接连接到总线 上执行控制, 而电热阀门驱动器则有三种接法, 通过开关制动器, 通过电子开关
制动器或通过电子继电器并接到通用接口上。 控制过程中, 阀门打开的大小程度 与供应的电压大小成比例。
定时温度控制:对各个房间进行定时控制, 可以节省能源并增加舒适性 (例如可 以控制浴室的温度在 22℃在早上 6点到 7点间和晚上 10点到 11点间,其它时间都控制在 18℃)
图 6 定时温度控制原理图
上图中, 定时温度控制的日期与时间参数值通过 3字节的数据传输, 而开关 状态用 1位数据来表示,开关量的大小由 8位的数据表示。
7. 自动化:中央自动化,房屋管理,远程控制和维护,操作数据采集,数据记 录,逻辑和定时器功能,故障处理,监控与安防;
8. 通信:IP 网络连接,电话线连接,远程桌面控制,远程红外控制,音频 /视 频功能,场景功能实现;
9. 运行:显示,可视化,操作,信息发布,报告;
范文三:SPI总线
SPI - Serial Peripheral Interface
同步 串行 外设接口 (S PI) 是由摩托罗拉公司开发的全双工同步串行总线,该总线大量用 在与 EEPROM 、 ADC 、 FRAM 和显示驱动器之类的慢速外设器件通信。
SPI (Serial Peripheral Interface)是一种串行串行同步通讯协议,由 一个主设备和一 个或多个从设备 组成, 主设备启动一个与从设备的同步通讯, 从而完成数据的交换。 SPI 接 口由 SDI (串行数据输入) , SDO (串行数据输出) , SCK (串行移位时钟) , CS (从使能信 号) 四种信号构成, CS 决定了唯一的与主设备通信的从设备,如没有 CS 信号, 则只能存 在一个从设备 , 主设备 通过产生移位时钟来发起通讯 。 通讯时, 数据由 SDO 输出, SDI 输 入,数据在时钟的上升或下降沿由 SDO 输出,在紧接着的下降或上升沿由 SDI 读入,这 样经过 8/16 次时钟的改变,完成 8/16 位数据的传输。
总线协议
该总线通信基于 主 -从 (所有的串行的总线均是这样, USB , IIC , SPI 等 ) 配置,而且下 面提到的方向性的操作合指代全部从主设备的角度说得。它有以下 4个信号:
MOSI:主出 /从入
MISO:主入 /从出
SCK:串行时钟
SS:从属选择;芯片上 “ 从属选择 ”(slave-select) 的引脚数决定了可连到总线上的器件 数量。
在 SPI 传输中,数据是同步进行发送和接收的。 数据传输的时钟基于来自主处理器的 时钟脉冲 (好像也可以是 IO 上的电平的模拟时钟 ) ,摩托罗拉没有定义任何通用 SPI 的时钟 规范。然而,最常用的时钟设置基于时钟极性 (CPOL)和时钟相位 (CPHA)两个参数, CPOL 定义 SPI 串行时钟的活动状态,而 CPHA 定义相对于 SO-数据位的时钟相位。 CPOL 和 CPHA 的设置决定了数据取样的时钟沿 。
数据方向和通信速度
SPI 传输串行数据时首先传输最高位 。波特率可以高达 5Mbps , 具体速度大小取决于 SPI 硬件 。例如, Xicor 公司的 SPI 串行器件传输速度能达到 5MHz 。
SPI 总线接口及时序
SPI 总线包括 1根串行同步时钟信号线以及 2根数据线。
SPI 模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和 相位可以进行配置,时钟极性(CPOL )对传输协议没有重大的影响。如果 CPOL=0,串行
同步时钟的空闲状态为低电平;如果 CPOL=1,串行同步时钟的空闲状态为高电平。时钟 相位(CPHA )能够配置用于选择两种不同的传输协议之一进行数据传输。如果 CPHA=0, 在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果 CPHA=1,在串行同步 时钟的第二个跳变沿(上升或下降)数据被采样。 SPI 主模块和与之通信的外设音时钟相位 和极性应该一致。 SPI 接口时序如图 3、图 4所示。
SPI 是一个环形总线结构 由 ss (cs ) 、 sck 、 sdi 、 sdo 构成,其 时序其实很简单,主 要是在 sck 的控制下,两个双向移位寄存器进行数据交换 。
假设下面的 8位寄存器装的是待发送的数据 10101010, 上升沿发送、 下降沿接收、 高 位先发送。
那么第一个上升沿来的时候数据将会是 sdo=1;寄存器 =0101010x。下降沿到来的时 候, sdi 上的电平将所存到寄存器中去,那么这时寄存器 =0101010,sdi,这样在 8个时钟脉 冲以后,两个寄存器的内容互相交换一次。这样就完成里一个 spi 时序。
例子
假 设 主 机 和 从 机 初 始 化 就 绪 :并 且 主 机 的 sbuff=0xaa(10101010) , 从 机 的 sbuff=0x55(01010101) ,下面将分步对 spi 的 8个时钟周期的数据情况演示一遍 :
假设上升沿发送数据 .
脉冲 (SCLK 主机 sbuff(主端发送 ) 从机 sbuff(主端接受 ) sdi 串行输入到主端 sdo 串行输出从主端 010101010 01010101 00
1上 0101010x 1010101x 0 1
1下 01010100 10101011 01
2上 1010100x 0101011x 1 0
2下 10101001 01010110 10
3上 0101001x 1010110x 0 1
3下 01010010 10101101 01
4上 1010010x 0101101x 1 0
4下 10100101 01011010 10
5上 0100101x 1011010x 0 1
5下 01001010 10110101 01
6上 1001010x 0110101x 1 0
6下 10010101 01101010 10
7上 0010101x 1101010x 0 1
7下 00101010 11010101 01
8上 0101010x 1010101x 1 0
8下 01010101 10101010 10
这样就完成了两个寄存器 8位的交换, 上面的上表示上升沿、 下表示下降沿, sdi 、 sdo 相对于主机而言的。其中 ss 引脚作为主机的时候,从机可以把它拉底被动选为从机,作为 从机的是时候,可以作为片选脚用。根据以上分析,一个完整的传送周期是 16位,即两个 字节, 因为,首先主机要发送命令过去, 然后从机根据主机的命令准备数据,主机在下一个 8位时钟周期才把数据读回来, 主机产生时钟 SCLK , 而数据又必须依靠边沿启动才能传送 。
SPI 总线是 Motorola 公司推出的三线同步接口,同步串行 3线方式进行通信 :一条时 钟线 SCK , 一条数据输入线 MOSI , 一条数据输出线 MISO; 用于 CPU 与各种外围器件进行 全双工、同步串行通讯。 SPI 主要特点有 :可以同时发出和接收串行数据 ; 可以当作主机或从 机工作 ; 提供频率可编程时钟 ; 发送结束中断标志 ; 写冲突保护 ; 总线竞争保护等。 图 3示出 SPI 总线工作的四种方式,其中使用的最为广泛的是 SPI0和 SPI3方式 (实线表示 ):
图 2 SPI 总线四种工作方式
SPI 模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和 相位可以进行配置,时钟极性(CPOL )对传输协议没有重大的影响。如果 CPOL=0,串行 同步时钟的空闲状态为低电平;如果 CPOL=1,串行同步时钟的空闲状态为高电平。时钟 相位(CPHA )能够配置用于选择两种不同的传输协议之一进行数据传输。如果 CPHA=0, 在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果 CPHA=1,在串行同步 时钟的第二个跳变沿(上升或下降)数据被采样。 SPI 主模块和与之通信的外设音时钟相位 和极性应该一致。 SPI 接口时序如图 3、图 4所示。
Preface
With this article, the possibilities of serial communication with peripheral devices via SPI (Serial Peripheral Interface) will be discussed. More and more serial bus systems are preferred instead of a parallel bus, because of the simpler wiring. As the efficiency of serial buses increases, the speed advantage of the parallel data transmission gets less important. The clock frequencies of SPI devices can go up to some Megahertz and more. There are a lot of application where a serial transmission is perfectly sufficient. The usage of SPI is not limited to the measuring area, also in the audio field this type of transmission is used.
The SPI (this name was created by Motorola) is also known as Microwire, trade mark of National Semiconductor. Both have the same functionality. There are also the extensions QSPI (Queued Serial Peripheral Interface) and MicrowirePLUS.
The popularity of other serial bus systems like I2C, CAN bus or USB shows, that serial buses get used more and more.
Below is a list of SPI devices. However this list neither claims to be complete nor is the availablability of the listed components guaranteed. In addition there is a list of manufacturers with the type of SPI components they produce.
Martin Schwerdtfeger, 06/2000
The Principle
The Serial Peripheral Interface is used primarily for a synchronous serial communication of host processor and peripherals. However, a connection of two processors via SPI is just as well possible and is described at the end of the chapter.
In the standard configuration for a slave device (see illustration 1), two control and two data lines are used. The data output SDO serves on the one hand the reading back of data, offers however also the possibility to cascade several devices. The data output of the preceding device then
forms the data input for the next IC.
Illustration 1: SPI slave
There is a MASTER and a SLAVE mode. The MASTER device provides the clock signal and determines the state of the chip select lines, i.e. it activates the SLAVE it wants to communicate with. CS and SCKL are therefore outputs.
The SLAVE device receives the clock and chip select from the MASTER, CS and SCKL are therefore inputs.
This means there is one master, while the number of slaves is only limited by the number of chip selects.
A SPI device can be a simple shift register up to an independent subsystem. The basic principle of a shift register is always present. Command codes as well as data values are serially transferred, pumped into a shift register and are then internally available for parallel processing. Here we already see an important point, that must be considered in the philosophy of SPI bus systems: The length of the shift registers is not fixed, but can differ from device to device. Normally the shift registers are 8Bit or integral multiples of it. Of course there also exist shift
registers with an odd number of bits. For example two cascaded 9Bit EEPROMs can store 18Bit data.
If a SPI device is not selected, its data output goes into a high-impedance state (hi-Z), so that it does not interfere with the currently activated devices. When cascading several SPI devices, they are treated as one slave and therefore connected to the same chip select.
Thus there are two meaningful types of connection of master and slave devices. illustration 2 shows the type of connection for cascading several
devices.
Illustration 2: Cascading several SPI devices
In illustration 2 the cascaded devices are evidently looked at as one larger device and receive therefore the same chip select. The data output of the preceding device is tied to the data input of the next, thus forming a wider shift register.
If independent slaves are to be connected to a master an other bus structure has to be chosen, as shown in illustration 3. Here, the clock and the SDI data lines are brought to each slave. Also the SDO data lines are tied together and led back to the master. Only the chip selects are separately brought to each SPI device.
Illustration 3: Master with independent slaves
Last not least both types may be combined.
It is also possible to connect two micro controllers via SPI. For such
a network, two protocol variants are possible. In the first, there is only one master and several slaves and in the second, each micro controller can take the role of the master. For the selection of slaves again two versions would be possible but only one variant is supported by hardware. The hardware supported variant is with the chip selects, while in the other the selection of the slaves is done by means of an ID packed into the frames. The assignment of the IDs is done by software. Only the selected slave drives its output, all other slaves are in high-impedancd state. The output remains active as long as the slave is selected by its address.
The first variant, named single-master protocol, resembles the normal master-slave communication. The micro controller configured as a slave behaves like a normal peripheral device.
The second possibility works with several masters and is therefore named multi-master protocol. Each micro processor has the possibility to take the roll of the master and to address another micro processor. One controller must permanently provide a clock signal. The MC68HC11 provides a harware error recognition, useful in multiple-master systems. There are two SPI system errors. The first occurs if several SPI devices want to become master at the same time. The other is a collision error that occurs
for example when SPI devices work with with different polarities. More details can be found in the MC68HC11 manual.
Data and Control Lines of the SPI
The SPI requires two control lines (CS and SCLK) and two data lines (SDI and SDO). Motorola names these lines MOSI (Master-Out-Slave-In) and MISO (Master-In-Slave-Out). The chip select line is named SS (Slave-Select).
With CS (Chip-Select) the corresponding peripheral device is selected. This pin is mostly active-low. In the unselected state the SDO lines are hi-Z and therefore inactive. The master decides with which peripheral device it wants to communicate. The clock line SCLK is brought to the device whether it is selected or not. The clock serves as synchronization of the data communication.
The majority of SPI devices provide these four lines. Sometimes it happens that SDI and SDO are multiplexed, for example in the temperature sensor LM74 from National Semiconductor, or that one of these lines is missing. A peripheral device which must or can not be configured, requires no input line, only a data output. As soon as it gets selected it starts sending data. In some ADCs therefore the SDI line is missing (e.g. MCCP3001 from Microchip).
There are also devices that have no data output. For example LCD controllers (e.g. COP472-3 from National Semiconductor), which can be configured, but cannot send data or status messages.
SPI Configuration
Because there is no official specification, what exactly SPI is and what not, it is necessary to consult the data sheets of the components one wants to use. Important are the permitted clock frequencies and the type of valid transitions.
There are no general rules for transitions where data shouls be latched. Although not specified by Motorola, in practice four modes are used. These four modes are the combinations of CPOL and CPHA. In table 1, the four modes are listed.
Table 1: SPI Modes
If the phase of the clock is zero, i.e. CPHA = 0, data is latched at the rising edge of the clock with CPOL = 0, and at the falling edge of the clock with CPOL = 1. If CPHA = 1, the polarities are reversed. CPOL = 0 means falling edge, CPOL = 1 rising edge.
The micro controllers from Motorola allow the polarity and the phase of the clock to be adjusted. A positive polarity results in latchig data at the rising edge of the clock. However data is put on the data line already at the falling edge in order to stabilize. Most peripherals which can only be slaves, work with this configuration. If it should become necessary to use the other polarity, transitions are reversed.
The different Peripheral Types
The question is of course, which peripheral types exist and which can be connected to the host processor. The available types and their characteristics are now discussed. Peripheral types can be subdivided into the following categories:
?Converters (ADC and DAC)
?Memories (EEPROM and FLASH)
?Real Time Clocks (RTC)
?Sensors (temperature, pressure)
?Others (signalmixer, potentiometer, LCD controller, UART, CAN controller, USB controller, amplifier)
In the three categories converters, memories and RTCs, there is a great variety of component. Devices belonging to the last both groups are more rarely.
There are lots of converters with different resolutions, clock frequencies and number of channels to choose from. 8, 10, 12 up to 24Bit with clock frequencies from 30ksps up to 600ksps.
Memory devices are mostly EEPROM variants. There are also a few SPI flash memories. Capacities range from a couple of bits up to 64KBit. Clock frequencies up to 3MHz. Serial EEPROMS SPI are available for different
supply voltages (2.7V to 5V) allowing their use in low-voltage applications. The data retention time duration from 10 years to 100 years. The permitted number of write accesses is 1 million cycles for most components. By cascading memory devices any number of bits/word can be obtained.
RTCs are ideally suited for serial communication because only small amounts of data have to be transferred. There is also a great variety of RTCs with supply voltages from 2.0V. In addition to the standard functions of a
The group of the sensors is yet weakly represented. Only a temperature and a pressure sensor could be found.
CAN and USB controllers with SPI make it easier to use these protocols on a micro controller and inerfacing a LCD via SPI saves the troublesome parallel wiring.
Manufacturer List
Device List (Peripherals)
Literature
[1] Motorola MC68HC11 Reference Manual, Prentice Hall 1989 [2] Motorola MC68332 User Manual
[3] Various application notes
[4] Data sheets
www.mct.net
范文四:USB总线
USB 总线
随着要与 PC 机连接的外部设备增多,因为 PC 机要为每个外设提供一个接口,因此 PC 提供的接口也要增多 (实际上这是不可能的) , 否则只能外设用时插上不用了拔去。 同时 与外设连接的电源线和数据信号电缆线数目也要增多,犹如乱玛一般。
而 USB 总线的主要用途是为 PC 机和要与其连接的外设提供一个标准的接口,对具备该接 口的外设可以采用一种拓扑结构都连接到 PC 机的一个 USB (通用串行总线接口) 上, 不用 每个外设都直接与 PC 机相连, 节省了 PC 机的接口数目。 并且可以由 USB 总线为外设提供 电源,这样外设可以不要电源独立供电设施,相应的外设的电源线也可以省去。
USB 总线协议分 1.0版本和 2.0版本 .
1.0版本总线传输速度分低速 (1.5MB/s)和高速 (12MB/s)两种 .
而 2.0版本总线传输速度最大可达 480MB/s。
一个主机用一个接口(根 HUB )最多可以连接 127个设备,每个设备可有 16个端点,总线 上的设备由设备地址进行区分,设备通过 HUB 端口一级一级连到主机的根 HUB 上,形成 树状拓扑结构,每个功能可以由总线供电(由 HUB 设备提供) ,也可以自供电。两个上下 级设备之间电缆长度可达 5m 。 主机能自动识别 USB 总线上设备的接入和移走, 并自动配置 设备, 分配设备地址,设备连接即插即用,可以带电热插拔。 总线上数据传输采用数据包的 形式, 总线上传输的数据类型及方向采用包的格式来区分。 每个设备与主机通讯时, 是由主 机控制的, 主机先检测总线状态, 只有总线空闲时主机根据数据方向向该设备发相应的标志 包, 然后设备才可以与主机传输数据。 由于设备与主机通讯是由主机控制的, 因此不存在总 线冲突问题, 由主机确定要与之通信的设备, 总线上设备也是由主机进行配置的 (如设备地 址) 。
1接口信号线
USB 总线包括 4根信号线, 用于传送信号和提供电源。 其中, D+和 D-为信号线, 传送信号, 是一对双绞线; VBUS 和 GND 是电源线,提供电源。 USB 接口插头为四芯插头。和 PC 机 (或 HUBS )为 4芯长方形插头,和外设连接的插头是 4芯方型插头。
在连接时, D+线上要求接 1.5K 的上拉电阻 , 并且在 D+和 D-线上分别接入串联电阻 , 其阻值 为 27~44Ω。
2电气特性
USB 主机或根 HUB 对设备提供的电源电压为 5V ,最大电流为 500mA 。并且当设备第一次 被 USB 主机检测到时,设备从 USB 主机吸入的电流值应小于 100mA 。因此当 USB 设备电 流大时,可以自带电源。
USB 主机有一个独立的电源管理系统(APM ) ,通过 USB 系统软件对于总线上暂时不用的 USB 设备, APM 可以将其置为挂起状态,等到数据传输时, APM 再把其唤醒。
3 USB设备
USB 系统设备分两类,即 HUB 设备和 USB 功能设备。
HUB 有两种即根 HUB 设备和扩展 HUBS 。
根 HUB 即起主控作用的 PC 机(被称为宿主 HOST )的 USB 端口,起主控作用的 PC 机是 USB 系统的主控者,负责 USB 设备的接入和传输的初始化, USB 总线上只能有一个,其它 USB 设备都必须靠 USB 主机来控制,并和 USB 主机通讯。
扩展 HUBS 即 HUB 设备用来扩展 USB 总线上的 USB 功能设备的连接数目, 即起集线器的 作用, 提供扩展端口, 可以再连接其它 HUB 设备或 USB 功能设备, HUB 设备完成插到其 端口的 USB 设备的即插即用(连接和断开,速度设置,帧定时)和电源管理等功能(包括 提供电源) 。每个 HUB 设备都有一个帧定时器,在帧开始包传来时与之同步。
USB 功能设备即 USB 外设是完成某项具体功能的硬件设备, 即平时说的带 USB 端口的 USB
设备。如数码相机,显示器等。功能设备既可以发送数据,也可以接收数据。
USB 功能设备通过 HUBS 的端口一级一级连到 USB 主机 (HOST ) 上的根 HUB 上, 形成一 种星状的层层向上的拓扑结构。在这个系统中,主机的根 HUB 处于顶端,各级 HUBS 处于 连接的中间,而设备的端点处于树的末端。
4 端点
由于 USB 设备在接入 USB 总线时,不用考虑 I/O地址空间, IRQ 线和 DMA 通道等问题。 而是由 USB 主机为其分配一个逻辑地址。 为了和 USB 主机通讯和完成一定的功能每个 USB 设备都必须有一定数量的寄存器,用于 USB 设备功能的设置 ,这些寄存器被称为端点,每 个端点都被分配一个互不相同的端点号。 在和 USB 主机通讯时, USB 主机通过设备的逻辑 地址和端点号和 USB 设备通讯 。可以说端点是 USB 系统中的末梢部分,主机和 USB 设备 的通讯就是和 USB 设备的不同端点的通讯。
在 USB 设备端点中必须有一个零端点(特定的寄存器) 。 USB 主机通过零端点读取 USB 设 备的描述器,描述器提供了设备的必要信息,端点的数目及用途,主机通过读取的这些信 息就能识别设备的类型,并决定如何对设备进行设置和通讯。
5 管道
就是描述信息传输的通道, 我们知道数据传送发生在主机与设备的每一个端点之间。 因此设 备有几个端点也就有几个管道来传送数据。 USB 设备一般有一个接收数据的管道,还应有 一个发送数据的管道。端点 0所对应的管道被称为默认管道。 USB 主机对设备发的控制信 息通过默认管道传送,即默认管道主要用于控制类型数据的传输。
6 设备描述器
设备描述器是一个有一定格式的数据结构,用于描述 USB 设备的属性和特点。可以分为设 备描述器、设置描述器、接口描述器、端点描述器。通过这些描述器描述了 USB 设备的地 址、要进行的传输类型、数据包的大小和带宽要求等。
设备描述器:一个 USB 外设设备一个设备描述器,描述了设备的一般的特性。如默认管道 的信息。
设置描述器:描述设备可以有的工作方式设置方面的信息。 因此设备有几种工作方式就应该 有几个设置描述器。
接口描述器:一个设备可能有多个功能, 因此就有多个功能接口。 接口描述器就是提供接口 的一般信息, 包括所支持的设备类型和该接口所用的端点数目 (除默认端点, 默认端点是公 用的) 。
端点描述器:用于定义每个端点。
在 USB 设备接入时,主机就是通过读取的这些描述器(数据结构)来获取有关信息,从而 决定如何对设备进行设置和如何通讯。
二 USB 数据传输类型及数据包格式。
USB 总线上传输的数据流有控制信号流、块数据流、中断数据流、实时数据流四类。 控制信号流:是设备加入系统时,主机与设备之间传输的控制信号。
块数据流:用于发送大量数据。
中断数据流:用于传输随机性数据,包括事件通知信号、输入字符,鼠标事件等。
实时数据流:用于传输连续的固定速率的实时数据。
对应四种数据流类型也有相应的四种传输类型:控制传输、批传输、中断传输、实时传输。 控制传输:传输控制信号流, 方向是双向的, 用于传输控制信号流如主机发的设置命令及对 设备的配置参数,传输中出现错误则需重发。
控制信息必须通过端点 0来传送。
批传输:批传输可以是单向的, 也可以是双向的, 用于传输块数据流。 传输过程中出现错误
也需重传。
以上两种传输方式传输过程都分三个阶段启动阶段(SETUP ) 、数据传输阶段(DATA ) 、状 态阶段(STATUS ) ,在启动阶段,主机向设备发命令(或输入输出标志) ,接着在数据阶段 传输数据, 最后状态阶段接收数据方传送成功或出错的状态信息给对方, 若不成功则请求重 发。
中断传输:用于传输中断数据流(USB 设备随机发生的事件信息) 。主机对此类事件是通过 查询来检测的,主机最快查询频率是 1KHZ 。中断传输的传输过程也分三个阶段,但传输是 单向的, 数据只能从设备向主机发送, 主机根据查询频率向外部设备不断的发输入允许标志, 若当时端点可用时就向主机发送数据, 发送成功向主机回送一个成功信息。 若当时外设端点 不可用或外设出错时,向主机回送一个出错信号,并在主机下一次查询时要求设备重发。 实时传输:方向可以是单向的, 也可以是双向的。 用于传输实时数据流。这种传输方式要求 数据实时传输, 传输速率固定, 因此这种方式在数据传输中忽略错误, 出现错误不要求重发。 实时传输的传输过程分两个阶段启动阶段 (SETUP ) 、 数据传输阶段 (DATA ) , 在启动阶段, 主机向设备发输入或输出标志,接着在数据阶段发送方就按固定的传输速率向对方发送数 据,而不论数据成功发送与否。
USB 总线上发送的数据是以包的形式组织的,包是 USB 数据交换的基本单位,由包组成数 据 . 帧,一 . 帧都有单独的编号,持续时间固定,一 . 帧时间可以发生几次数据交换(输入、输 出或命令设置) ,而一次数据交换至少需要标志包、数据包,有的还需要握手包,因此数据 的传输也就是包的传输。包的种类包括标志包、数据包、和握手包。
1、标志包是主机发出的,标志包有三种类型:IN 、 OUT 、 SETUP 。每一次数据交换都以标 志包为首部,来定义传输的类型和方向及要与主机交换数据的设备的地址和端点号。因此 USB 总线是一种基于标志的总线协议。
格式如下:
PID ENDP CRC
8位 8位 7位 4位 5位
标志包总长 32位。
包含同步域 (SYNC ) 、 标志域 (PID ) 、 设备地址域 (ADDR ) 、 端点域 (ENDP ) 、 校验域 (CRC ) SYNC 域 :长度为 8位,输入电路利用同步域来与对方建立同步,每个包都有 SYNC 域。 标志域:8位,定义标志包的类型。
地址域:7位,用该地址确定包的传输目的地,既对应发往设备的设备地址。由于设备地址 用 7位来区分,因此 USB 系统最多可以连接 128个设备。
端点域:4位长度,确定包要传输到设备的哪个端点。因此一个设备最多可有 16个端点。 校验域(CRC ) :5位长度,用于地址域和端点域的校验。
IN 标志包(PID 为 10011001) :当主机要从设备读取信息时,就要首先有主机发送一个 IN 标志包;
OUT 标志包 (PID 为 0001001) :当主机要从设备发送信息时, 就有主机先发送一个 OUT 标 志包。
SETUP 包(PID 为 11011101) :用于控制传输的启动,由主机发送。
2、 SOF 标志包(PID 为 01010101) :定义一 . 帧数据传送的开始。每一帧都以一个 SOF 标志 包开始。 SOF 包格式如下:
SYNC PID FRAME NUMBER CRC
8位 8位 11位 5位
总长也为 32位,包含同步域(SYNC ) 、标志域(PID ) 、帧编号域(FRAME NUMBER ) 、 校验域(CRC )
3、数据包分两种类型(PID 分别为 00110011、 10111011) ,数据包是主机与设备之间实际要 传送的数据。
格式如下
SYNC PID DATA CRC
8位 8位 0~1023 5位
总长不定,包含同步域(SYNC ) 、标志域(PID ) ,数据域,校验域(CRC )四部分。 4、 握手包:握手包接收数据方向发送方回送的状态信息, 包括三种类型:应答包 ACK (PID 为 00100010) 、无应答包 NAK (PID 为 10101010) 、挂起包 STALL (PID 为 11101110) 。 应答包 ACK 表示接收数据正确。无应答包 NAK 表示无法接收数据或接收不正确。
挂起包 STALL 表示设备无法完成数据传输,设备处于挂起状态,需要主机参与使其脱离挂 起状态。
握手包的格式如下:
PID
8位 8位
总长 16位,只有两个域,同步域(SYNC )和标志域(PID ) 。
三 USB 设备的即插即用
当 USB 外设接到 HUB 上或从 HUB 端口移走时,就会被 HUB 检测到,并通知主机由主机 对设备进行配置,并更新总线拓扑信息。
其整个过程如下:
(1) USB 设备接到 HUB 的某个端口上, 该 HUB 就会通知主机发生了设备接入事件, 主 机确认设备的接入事件和接入端口,设备处于连接状态(Attached ) 。
(2) 主机向该端口送一个持续 100ms 的复位命令(RESET )信号,当 RESET 信号结束 时,端口被使能并打开,复位后所有的寄存器和状态被复位,并能响应默认地址。 这时 HUB 能够提供 100mA 电流给 USB 设备, USB 设备进入上电状态(Powered ) 。 (3) 主机通过该默认地址读取设备的描述器来获得此地址相应的默认管道的最大数据传 输量。这时设备处于地址默认状态(default ) ;
(4) 主机给设备分发一个唯一的地址,设备进入地址状态(Addressed ) 。
(5) 主机读取设备的配置信息,主机以配置信息向设备分发一个配置值,该端点准备就 绪可以开始工作,设备可以使用,这时设备处于 配置状态。
若设备在上电状态后,未获得总线的访问权,则进入挂起状态(Suspended ) ,直到总线激 活以后重进入原状态。设备在挂起状态吸入电流可以很小,必须小于 500uA 。
当设备从 HUB 端口移走时, HUB 通知主机, 主机确认后使该端口进入无能状态, 端口关闭。
USB 功能器件 —— PDIUSBD11
PDIUSBD11是菲利普公司生产的 USB 功能器件,支持 USB1.0版本 .
特征 :
1 遵照 USB1.0规范
2 满足 ACPI, OnNOW, and USB电源管理要求 .
3内部集成 SIE (Serial Interface Engine),FIFO存储器和发送接收器 .
4 自动执行 USB 协议操作
5 高速 I2C 总线接口 (最大速度可达 1Mb/s).
6 内置终端电阻 , 并软件控制该电阻连接到 USB D+数据线上 (SoftConnect).
7低的振荡频率 12MHZ 减少了 EMI 发射 .
8 带有一个频率可编程的时钟输出脚 .
9 总线挂起状态消耗很低的电流用来支持 USB 总线供电 .
10 在挂起状态可控制的 LazyClock 的输出 .
11 单 3.3V 电源供电 I/O口支持 5V 操作 .
12 具有 16脚 DIP 和 SO 封装形式 .
13超过 8KV 的内部 ESD 保护 .
14 全部扫描设计保证 99%的可靠性 .
发射接收单元
发射接收单元通过终端电阻直接连到 USB 接口插座上 , 可以以 12MB/S(全速 ) 的速度发射和 接收 USB 串行数据 , 本器件内置终端电阻 , 并软件控制其连到 D+数据线上 , 因此不用外接终端 电阻。
PLL
器件内置 PLL (时钟锁相环) , 将 12MHZ 的时钟频率转换成 48MHZ 的内部时钟, 外部只需 外接一个低成本的 12MHZ 晶体振荡器, PLL 的外部元件全部内置于芯片内,因此减少了 EMI 发射并使设计容易。
位时钟恢复单元
位时钟恢复单元采用 4倍过采样原理从 USB 输入数据流中恢复位时钟,它也能跟踪时钟跳 动和频率摆动。
串行接口管理单元
串行接口管理单元完成全部 USB 协议层的功能, 并且完全是硬件实现的, 不需软件的参与。 其功能包括:同步模式识别,串 /并转换,位填充 /恢复, CRC 校验 /产生, PID 校验 /产生, 地址识别,握手产生。
存储管理电源(MMU )和集成 RAM 单元
存储管理电源(MMU )和集成 RAM 单元被用来处理在 USB 数据传送速度(12MB/S)和 微控制器读写数据的速度(通过 I2C 总线最大速度 1MB/S)之间大的差别,通过 MMU 的 处理, CPU 可以以它自己的速度通过 I2C 总线读写 USB 数据包。
SoftConnect
PDIUSBD11内置的总线终端上拉电阻(1.5K 阻值)默认条件下没有连接到 VCC 上 , 需要通过 软件控制 (外部 CPU 发送一个命令 ) 连接到 VCC 上 . 这将有助于外部 CPU 在决定把器件连接到 USB 总线上之前先完成器件的初始化或重新初始化 .
在器件连接到 USB 上之前 , PDIUSBD11将检测 VBUS 信号的有效性 .
端点描述
注 :通用端点可以用于中断或块传送 .
管脚描述
注 :1 ST施密特输入
2 OD6开漏输入输出 6mA 驱动
3 AI/O 模拟 I/O脚
I2C 接口单元
I2C 接口单元用于 CPU 与 USB 器件 PDIUSBD11之间数据的传送,执行必须的 I2C 总线接口 协议, PDIUSBD11作为 I2C 从设备使用,外部微控制器通过 SCL 时钟线和 SDA 数据线操作 PDIUSBD1,能够运行在最大 1MB/S的速度。 INT 中断输出脚接到 CPU 上,当 PDIUSBD11产生 中断时,向 CPU 发出中断信号。
I2C 接口定义了 CPU 与 USB 器件 PDIUSBD11之间数据传送的两类数据传送种类:命令传送 和数据传送
命令传送:命令传送定义紧接着传送的数据传送类型。
数据传送:数据传送从 PDIUSBD11中读数据或写数据到 PDIUSBD11中。
数据传送与命令传送是独立的,并使用不同的从设备地址。 PDIUSBD11器件命令传送时的从 设备地址为 0011011,数据传送时的从设备地址为 0011010。
命令地址只能输入到 PDIUSBD11中, 不能从 PDIUSBD11中读。 命令地址后紧跟着命令字节 (可 以允许几个命令字节) ,每一个字节必须有 MMU 单元发出的应答位。
数据传送时, 数据地址中有一位读写方向位 (R/W位) , 当 R/W位为 0时, CPU 向 PDIUSBD11从设备写数据,每一个数据字节后也必须有 MMU 单元做出应答,当 R/W位为 1时, CPU 从 PDIUSBD11从设备读数据,每个数据字节后(除了最后一个字节)有 CPU 发出应答。当 PDIUSBD11把最后一个字节发出后,由于没有应答位,因此知道数据已经发完,然后释放 SDA 数据线,有 CPU 发出停止位结束数据传送或者重新发出开始位进行另一个包的传送。
命令介绍
命令描述
从表中可以看出 , 有三大类命令 :初始化命令 , 数据流命令和两个通用功能的命令 , 相应地 , 它们 分别用于器件的初始化 , 微控制器与器件之间的数据流传送和一些通用功能 . 读缓冲和写缓 冲 , 读传送状态与设置端点状态公用一个代码 , 其区别有紧跟着的数据方向确定 . 初始化命令
初始化命令在器件开始接入 USB 网络的枚举过程期间使用 , 用于功能端点的使能和设置一些 USB 分配的地址 .
1 Set Address/Enable (D1h)
设置 USB 分配地址和使能其功能 , 后跟一个写入字节 . 地址位
方框中的值为电源启动时的默认值
地址位是写入的 USB 分配的地址
ENABLE 位为 1 使该功能生效
2 Set Endpoint/Enable(D8h)
这个命令用来使能通用端点 , ,后跟一个写入字节 .
使能位
x 单元为保留位 , 应该写入 0值
D1为使能位 , 写入 1则使能通用端点
3 Set Mode(F3h)
这个命令用来设置工作模式 , 后面紧跟写入两个字节 , 一个字节包含着配置值 , 第二个字节为 时钟分频因子
配置字节
远程唤醒位
LazyClock 控制位
时钟运行位
调试模式位
软件连接控制位
将来模式
D6,D5位为保留位 , 应写入 0
远程唤醒位(D0) :为 1指示远程唤醒功能开放 , 总线复位时设置该位为 1
LazyClock 控制位(D1) :为 1表示 CLKOUT 时钟正常输出 , 为 0表示在挂起脚 SUSPEND 变高 1ms 后 CLKOUT 脚输出 LazyClock 时钟 , LazyClock时钟是 30KHZ 。 该位在总线复位 后不变化。
时钟运行位(D2) :为 1表示内部时钟, PLL ,晶体振荡器正常运行(包括在挂起状态) , 为 0表示内部时钟, PLL ,晶体振荡器停止运行,在挂起状态必须设置该位为 0,使芯片 处于省电状态,以便满足挂起状态 D 对总线吸入电流严格的要求。该位在总线复位后不 变化。
调试模式位(D3) :该位为 1表示对所有的错误及无应答都要报告,为 0表示只报告 OK 状态。该位在总线复位后不变化。
软件连接控制位 SoftConnect (D4) :为 1表示在检测到 VBUS 有效时,把内置终端上拉 电阻连接到 VCC 上,为 0表示不连接。该位在总线复位后不变化。
将来模式:总是写入 1。
时钟分频因子字节
时钟分频因子
保留位写入 0
时钟分频因子:是可编程的时钟分频因子,用于 CLKOUT 时钟输出, CLKOUT 时钟频率等 于:F clkout =48Mhz/(n+1) n 为 时钟分频因子,由于电源启动复位时默认值为 11,因此这 时 CLKOUT 输出 4MHZ 时钟, 用户可以编程使 CLKOUT 输出 4MHZ ~24MHZ 时钟, 并且 时钟变化时无时钟抖动。总线复位不影响该值。
数据流命令
数据流命令被用来管理 USB 端点与微控制器之间的数据流传送,许多数据流传送通过中断 发生。微控制器通过这些命令存取或确定 FIFOS 端点是否有有效数据。
1读中断寄存器(F4h ) ,后面跟着读两个字节数据。
中断寄存器字节 1
保留位
Control Out Endpoint
Control In Endpoint
4号端点
5号端点
6号端点
7号端点
8号端点
9号端点
总线复位标志位
这两字节指示中断源, 为 1表示对应的端点发生了中断事件。 这些位通过发读端点状态寄存 器读端点状态被清除。
在总线复位时,产生一个中断,标志位为中断寄存器字节 2的 D6位(为 1表示发生了总线 复位) ,这是总线复位与通过 RESET 引脚硬件复位的唯一区分标志。该位通过读中断寄存 器被内部清除。
2选择端点命令(00~0Dh ) ,后面可以跟着读一个字节或者不读。
选择端点命令用于设置被选择的缓冲区开始位置内部指针。 该命令可以跟着读一个字节, 返 回 0表示缓冲区是空的,返回 1表示缓冲区是满的。
/满标志位
保留位
3读最后传送状态命令(40h-4Dh )
读最后传送状态命令后跟着读一个字节, 返回被选择的端点的最后传送状态, 该命令也复位 中断寄存器中的相应端点的标志位和清除其中断状态,指示端点已经被读过。
由于该命令可以读每一次传送的状态, 因此在调试时非常有用, 状态信息在每一次传送时被 更新。
数据发送 /接收成功标志
错误代码
启动包
数据包
先前状态未读
数据发送 /接收成功标志(D0) :为 1表示数据已经成功发送或接收
启动包标志位(D5) :为 1表示最后成功接收到的包中有一个启动标志。
数据包标志位(D6) :为 1表示最后成功接收到的包或发送的包中有一个数据标志。 先前状态未读标志位(D7) :为 1表示在先前的状态读之前又出现一个新的事件。
4读端点状态(80~8Dh ) ,后面跟着读一个数据字节
保留位
启动包标示
停止标志
数据包标示
保留
启动包标示(D2) :为 1表示最后接收到的包中有一个启动标志。
数据包标示(D4) :为 1表示最后成功接收到的包或发送的包中有一个数据标志。
停止标志(D3) :为 1表示端点被终止。
缓冲区满标志(D5) :为 1表示缓冲区满。
5读缓冲命令(F0h )
读缓冲命令后跟着读一连串数据 (最大 10个字节) , 返回被选择的数据缓冲区的内容, 在每 一次读后,内部数据缓冲区的指针自动增加 1。
读缓冲命令不复位数据缓冲区的指针到缓冲区的开始位置, 这意味着读或写缓冲区可以被其 它命令中断(除了选择端点命令) ,或者读或写缓冲区可以分几次 I2C 传送完成,如第一次 读两个字节得到数据字节的数目,然后在其它 I2C 传送过程中读剩余的字节。
数据缓冲区的数据组织如下:
·BYTE0:保留,可以是任意值
·BYTE1:数据字节的个数(长度) 。
·BYTE2:数据字节 1
·BYTE3:数据字节 2
……
6写缓冲区命令(F1h )
写缓冲区命令后跟着写一连串数据 (最大 10个字节) , 用来往相应端点的数据缓冲区写数 据,在每一次写后,内部数据缓冲区的指针自动增加 1。数据缓冲区的数据组织和上面描述 的一样,但字节 0(保留字节)必须写入 0,同样地,写缓冲区也可以分几次 I2C 传送完成。 注意:在缓冲区边界已经超过时, 或往输出缓冲区写数据或从缓冲区读数据时, 没有相应的 保护措施,这些操作将引起不正确的操作。
7清缓冲区命令(F2h )
当一个包接收完成时,内部端点的数据缓冲区满标志被置位,后面紧接着发送的包不被接 收 (通过回送一个非应答包) 。 当 CPU 已经从缓冲区读走数据时, 它应该发送一个清缓冲区 命令来清除数据缓冲区,以便新的包可以被继续接收。
8验证缓冲区命令(FAh )
当 CPU 已经写数据到输入缓冲区时,它应该发送一个验证缓冲区命令来设置缓冲区满 标志, 这标志输入缓冲区的数据已经有效, 可以在下一个输入包被接收到时, 把缓冲区的数 据发送到主机。
9设置端点状态(40h ~4dh )
设置端点状态命令后面跟着写一个字节来使端点终止或重新启动初始化。
一个被终止的端点当它接收到一个启动包时可以自动启动, 而不管该端点状态的内容。 如果 端点要继续停留在终止状态, CPU 要发一个设置命令使其重新终止。当一个端点重新启动 时(通过发一个设置端点状态命令或者接收到一个启动包) ,端点也应该重新初始化,如刷 新缓冲区, 对于一个输出缓冲区它将等待一个数据包 0的 PID , 对于一个输入缓冲区它写一 个数据包 0的 PID 。
停止位
保留位
停止位:为 1使该端点终止,为 0初始化该端点,不管该端点是否在终止状态。
10应答启动命令(F1h )
一个启动包的到来将刷新输入缓冲区和使验证缓冲区命令和清除缓冲区命令对输入和输出 端点失效。 因此需要发一个应答启动命令来使这些命令重新有效。 这将确保最后接收到的启 动包停留在缓冲区,没有其它包可以返回到主机,除非 CPU 已经看到该启动包通过发一个 应答启动命令。
通用命令
1 传送恢复(F6h )
当器件处于挂起状态时,发一个传送恢复来使器件脱离挂起状态。
2读当前数据帧号命令(F5H )
这个命令后面可以跟着读一个或者两个数据字节。返回最后成功接收到的读开始包(SOF ) 的帧号码,首先返回帧号的低字节。
低字节
高字节
范文五:MVB总线
摘 要:介绍了 MVB 总线的物理层、帧和报文的格式与时序 , 以及其在广州地铁 2 号线、深圳地 铁 1 号
线、上海地铁 1 号线延长线等车辆控制系统中的成功应用。 关键词:地铁列车 ; 多功能车辆总线 ( MVB) 帧 ; 报文 ; 自动控制
地铁 2 号线、深圳地铁 1 号线、上海地铁 1 号线延长线的列车均采用了符合 IEC61375 TCN 标准的 德国总线控制系统。该系统由列车总线 ( WTB) 和多功能车辆总线 ( MVB) 两部分组成 , 单元 ( 整个列 车 6 辆车为一个编组 , 3 辆车为 1 个单元 ) 内用 MVB 总线连接 , 两个单元间用 WTB 总线连接
1 MVB 总线的物理层和链路层
MVB 总线模型是在开放系统互联 OSI 模型的基础上进行了简化。 OSI 具有 7 层参考模型 , 而 MVB 只 有其中的物理层和链路层。
1.1 物理层
MVB 总线的物理层有 3 种 :
1) ESD( 电的短距离传输介质 ) , 使用双绞屏蔽线 , 按 RS- 485 标准 , 最多支持 32 个设备 , 最大总线长 度 20 m 。
2) EMD( 电的中距离传输介质 ) , 使用双绞屏蔽线 , 最多 支持 32 个设备 , 最大总线长度 200 m 。允许 使用变压器连接。
3) OGF( 光纤媒介 ) , 使用总线连接器 , 传输距离可达 2 km。
MVB 总线系统是分级控制系统。系统设备共分 5 个级别 , 6 种能力 :
1) 1 级设备具有的能力有设备状态和过程数据。设备端口地址一般与设备地址一致。 2) 2 级设备 具有的能力有设备状态 , 过程数据 , 信息数据 , 是智能设备可以通过总线配置 , 但不能编程。
3) 3 级设备具有的能力有设备状态 , 过程数据 , 信息数据和用户编程。
4) 4 级设备具有的能力有设备状态、过程数据、信息数据和总线管理器。用户编程具有可选性。
5) 5 级设备具有的能力有设备状态、过程数据、信息数据、网关和总线管理器。具有总线管理器 的网关能与各种总线同步。
1.2 链路层数据
1.2.1 帧和报文格式
有效的帧格式见图 1 , MVB 总线实现车辆控制 , WTB 总线实现列车控制。
1) 主帧格式 : 以主起动定界符开始 , 接着是 16 位报文数据 , 然后是 8 位校验序列。 4 位 F_code 码限 制下面的 12 位并指示从帧大小 , 如图 2 所示。
2) 从帧格式 : 以从起动定界符开始 , 接着是 16, 32,64, 128 或 256 位帧数据 , 8 位校验序列在 64 位数 据的每个字后或在 16, 32 位数据后。帧文每 64 位后就有一个校验序列 , 如图 3 所示。
3) 报文时序 : 主帧和响应它的从帧称为一个报文。 4) 报文类型 : 过程数据、信息数据和监管数据报 文。 1.2.2 数据分布
媒介访问是通过总线管理器实现的 , 周期循环。基本周期分为 4 个阶段 : 周期阶段 , 监管阶段 , 事件 阶段 , 警惕阶段 , 见图 4。其中事件阶段、监管阶段和警惕阶段构成临时阶段。 MVB 总线的数据分 为过程数据、信息数据和监管数据。其数据分布为 : 过程数据为周期发布 , 信息数据和监管数据发 布周期不固定。过程数据都是一些非常重要的数据 , 如牵引速度 , 加速度的值等。
2 硬件及软件简介
2.1 硬件
系统硬件主要包括车辆控制器 VTCU、总线连接器、输入输出单元、通讯连接器 ComC、人机显示 器 MMI 及相关子系统。
车辆控制器 VTCU 即总线控制器 , 每个 3 节车单元各一个 , 共由 7 块板组成 , 自带插槽和电源 , 是标准 的模块化 系 统 。 车 辆 控 制 单 元 由 网 关 ( VTCU- GW) , VCUT,VCUA 及 VTCU 的电源组成。网关控 制列车总线 ( WTB)和车辆总线 ( MVB) , 并在两个总线系统间转换过程和信息数据。列车诊断
板 VCUT 上有板载数据库 ( ODBS) , 可通过 RS422 接口控制人机界面。列车应用程序板 VCUA里包含 着列车和车辆的控制程序。 VTCU 的电源提供 110V直流电源 , 并与供电系统的电势隔离。
总线连接器具有连接不同车辆总线的作用 , 同时也能起到信号放大的作用。
输入输出单元由数字输入输出单元 DX 和模拟输入输出单元 AX 组成。数字输入输出单元 DX 的数 字数据 I/O 接口一般直接连到继电器触点上。每辆车都有很多 DX, 每个 DX 都可以设置地址。电源 电压 DC48~120 V,10 位输入 , 6 位输出。 1 位报警器输出模拟输入输出单元 AX 有模拟数据 I/O 接 口 , 每个 AX 也有自己的地址 ; 4 位模拟输入 ( ±10 V, ±20 mA) 2 位模拟输出。只有非常少的几 处 , 如牵引力大小等使用模拟量。
通讯连接器 ComC 主要用于没有 MVB 总线的第三方供货的通讯设备 MC68360 处理器 , 具
有 2 MB 闪存和 1 MB( 静态存储器 ) , 2 通道 RS232 , 2 通道 RS485, 1 通道 RS- 485, 1 通道 RS- 232 , 标 准 MVB ESD+, 以及 DC 24~120 V 标称电压 MVB 终端插 ( 每个 MVB 总线段必须带有一个终端
插 ) 。
2.2 软件
系统通讯和控制拓扑图如图 5 所示 , 其软件结构见图 6。
2.2.1 基本软件 CSS( 包括基本系统软件和适时系统软件 )
1) 控制系统中的操作系统基于 VxWorks 内核程序 ;
2) 用于应用程序的接口提供标准的功能实时操作系统 RTOS;
3) ANSI- C 的子集任务管理故障处理 ;
4) 数据记录 ;
5) 事件记录 ;
6) 时间同步 ;
7) 监控器 ;
8) 硬件相关功能 ;
9) 设备启动控制 ;
10) 内存测试 ;
11) MVB 支持和配置 : 信息数据、过程数据和总线管理。
2.2.2 应用软件
应用软件使用的是功能块语言 , 它实际上是一种开放式的 PLC, 代替传统继电器的逻辑关系。不用 使用许多硬线就实现了自动控制。另外 , 这种功能块语言不需要编程基础就能看懂 , 省去了编程语 言的培训。
在车辆控制上实现的功能 , 主要是牵引和制动控制。但其他一些功能 , 如门、空调、信息显示等也 挂在总线下 , 只是在牵引安全和制动方面 , 来判断牵引和制动能否进行 , 如门没有关到位 , 不能开车 等。
牵引、制动、门、空调、信息显示等是 MVB 总线下的子系统 , 这些子系统不需要有共同的语言 , 每 个系统都可以有自己的语言系统 , 但它们都必须遵循 MVB 总线协议。
虽然总线系统只有物理层和链路层 , 同开放式互联系统 OSI 的 7 层参考模型相比是一种低级控 制 , 但对实现自动控制已足够了。
3 结束语
列车自动控制是发展趋势 , 而总线技术是实现自动控制的手段。目前已经在广州地铁 2 号线、深圳 地铁 1 号线、上海地铁 1 号线延长线等地铁车辆上成功实践了地铁车辆自动控制 , 相信总线技术必 将得到进一步的推广和应用。