总线

在自动控制系统中,执行器同控制器或控制系统相连,共同实现对工业过程的控制。现场总线是过程控制技术、仪表工业技术和计算机网络技术三大技术领域相结合的产物。WorldFIP现场总线既是实时的,可预测的,又是面向未来的、能够和Internet连接的现场总线。本文对开发基于WorldFIP现场总线技术的智能电动执行器的软硬件进行了探讨,包括:MCU控制板卡,通信板卡和驱动板卡,以及相关软件程序的设计与开发。

1、引言

现场总线是从20世纪80年代中期发展起来的。随着工业自动化与微处理器计算机网络的不断发展,要求有一种能在工业现场环境运行的、性能可靠、造价低廉的通信系统以形成工厂底层网络,完成现场自动化设备之间的多点数字通信,实现底层现场设备之间以及生产现场与外界的信息交换。上世纪八、九十年代以来,逐步出现多种智能执行器,本文主要完成一种基于WorldFIP现场总线技术的智能电动执行器设计。

2、电动执行器硬件整体架构及框图

一种基于总线的智能型执行器系统设计
图1WorldFIP现场总线智能执行器控制器硬件框图

整体硬件框图如图1。两条现场总线1,2互为热备份,连到通信板卡,通信板卡将总线活动转换为MCU能够理解的信息,完成总线变量、消息、事件的传递,它是WorldFIP现场总线通信协议的具体实现,它的设计也是本设计中的重点和难点。MCU是本仪表的处理核心,所有的程序、数据、算法、功能块和通信库都存储其中,用户程序使用它内置的通信库来完成与总线的数据交换,并按照总线指令驱动执行器输出,把执行器角位置经过A/D转换后送入总线,对执行器角位置的命令值和当前反馈值通过LCD进行实时显示。电源转换、电机的驱动与隔离以及角位置反馈都集成在驱动板卡上。

3、硬件电路详细设计

3.1MCU板卡与LCD设计

MCU作为整个控制器的处理核心,任务包括:通过通信板卡与WorldFIP现场总线进行通信,程序运行、数据存储与运算,信号处理,LCD显示和执行器驱动信号输出等。

基于以上,我们选用了Motorola的68HC12系列的16位单片机68HC912BC32作为本设计的MCU,它与68HC11向上兼容;内部具有32K的FLASH、768字节的EEPROM和1K的RAM,能够满足程序的存储、堆栈使用、数据存储和未来的扩容需求而无须另外扩充存储器;总线速度快,8M,4M,2M主频可选,一个时钟周期就可以完成对齐/非对齐字的读写,系统总线上干扰较少;I/O口数量充足;内置有8路10位A/D转换器;内置4路8位或2路16位PWM通道;内置SCI,SPI和看门狗;具有模糊逻辑指令;还有WAIT,STOP两种省电模式可选。LCD显示器选用了南京国显公司的HD44780点阵字符型液晶显示模块。该模块技术成熟,与MCU接口简单,减少了开发周期。68HC12与LCD的接口如图2所示。

一种基于总线的智能型执行器系统设计
图268HC12与LCD的接口图

3.2电源转换、驱动及反馈板卡的开发

本设计的电源输入DC24V,硬件采用LM2572-5.0来完成DC24V到DC5V的转换,LM2572-12来完成DC24V到DC12V的转换。LM2575系列开关稳压集成电路是美国国家半导体公司生产的集成稳压电路,它内部集成了一个固定的振荡器,只须极少外围器件便可构成一种高效的稳压电路,可大大减小散热片的体积,而在大多数情况下并不需要散热片;内部有完善的保护电路,包括电流限制及热关断电路等;芯片可提供外部控制引脚。是传统三端式稳压集成电路的理想替代产品。典型特性:振荡频率54kHz;最大稳压误差4%;转换效率75%~88%(不同电压输出的效率不同);工作温度范围-40℃~+125℃。

位置反馈模块。该模块作用是将电动机经减速器输出的角位置反馈到68HC12中,可以考虑光电编码器和霍尔传感元件,但考虑到价格因素,本设计中仍然沿用了传统的电位器反馈,阻值500欧姆,精度1%。接线比较简单。

本设计所使用的电机是天津生产制造的3100型角行程电动执行器,额定转矩250Nm,4~20mA电流驱动,采用电位器反馈。在电机驱动中采用了北京科通电子继电器总厂生产的国冠牌JGX-3F型交流固态继电器。图3所示为驱动电动机正转的应用电路图,68HC12将控制信号置为高电平,使三级管导通,固态继电器输入端加入正向压降,输出导通,电机正转。电动机反转的应用电路图与之类似。

一种基于总线的智能型执行器系统设计
图3固态继电器用于电机正转

3.3通信板卡的开发

通信板卡负责与WorldFIP现场总线的通信,是本设计的重点与难点。板卡关键元件包括通信控制器MICROFIP,线驱动器FIELDRIVE和隔离变压器FIELDTR,均由法国ALSTOM公司设计、提供。WorldFIP通信板卡的组成框图如图4。按照功能分为3大部分:通信控制器(MICROFIP),通信收发驱动器(FILEDRIVE)和隔离变压器(FILEDTR)。该板卡是总线冗余的,配备有两路完全相同的通信收发驱动器和隔离变压器。

一种基于总线的智能型执行器系统设计
图4通信板卡总体框图

4、电动执行器硬件

MCUez集成应用图形开发环境是68HC12的软件开发平台,它分为Motpad文本编辑程序,Assembler编译程序,DEBUG调试程序和Linker连接程序4部分。其中,最为重要的它的DEBUG调试程序,该程序的源代码窗口,汇编代码窗口,数据窗口,命令行窗口,寄存器窗口和内存窗口,可以对用户程序完成断点跟踪,单步调试,全速运行等多种调试功能。该工具结合串行调试接口(SDI)共同完成对MCU程序的调试工作。

整个软件的设计完全由汇编语言写成,贯彻了自顶向下和模块化的原则,主要包括主程序,中断服务程序,A/D转换子程序,LCD显示子程序,执行器驱动输出子程序和以上提到的通信库等几个部分以及辅助的写FLASH程序和写EEPROM程序。MICROFIP的变量与消息的管理都依靠中断来完成,机制简述如下:MICROFIP满足一定条件时会从它的IRQ0N管脚给出中断信号,这时MCU内部的程序跳转到中断服务程序,通过读MICROFIP内部的IRQSA寄存器,可以知道究竟是什么原因触发了中断,并给标志字节INT_FLAG置位,而主程序中在初始化后则进入死循环,在循环内反复读该标志字节,从而跳转到相应的处理程序,图5为中断处理程序流程图。

1、角反馈位置子程序。68HC12片上提供了一个8路10位的A/D转换器,由于其简单易用,可靠性高,因此本设计中,应用该A/D转换器来完成位置信号的反馈。在本设计中,ATDCTL2赋值80H,允许A/D功能。正常清除A/D转换标志,不允许中断。ATDCTL3赋值00H,选择连续转换模式,不许冻结。ATDCTL4赋值01H,分频因子为4,采样时间为2个A/D时钟。A/D转换完毕后,就可以得到当前角位置反馈,然后将该值存入数据缓冲区,供执行器驱动子程序、向总线仲裁器发送的变量写子程序和LCD显示子程序使用。

2、执行器输出驱动子程序。由于执行器的正反转输出由MCU上的两个I/O口进行控制,所以对其控制比较简单,在此不作详细叙述。值得一提的是本设计中将死区嵌入了对到达指定位置判断的子程序中,执行器正转时,反馈值不能大于指定值加1(指定值为0~100%开度),反转时,反馈值不能小于指定值减1。即死区被定为1%。

一种基于总线的智能型执行器系统设计
图5中断处理程序流程图

3、LCD显示子程序。本设计使用的LCD控制器HD44780必须进行初始化,否则模块可能无法正常显示,一般通过软件复位程序来完成其初始化。将LCD设置为8位数据接口,2行显示,5×7点阵,显示开,光标关,闪烁关,无移位。第一行地址80H,第二行地址C0H。在对LCD初始化结束后,可以对LCD进行读写操作。LCD的读写操作都是在E管脚的下降沿有效,所以读写前要确保数据准备好,先将E置高,再将其置低,完成读写操作。

4、软件的固化。软件调试完毕后需要把程序固化到MCU68HC12的FLASH中,68HC12的FLASH控制寄存器共有4个,它们是:FEELCK,FEEMCR,FEETST和FEECTL。FEELCK等于01H时将禁止FLASH,FEEMCR等于01H时将擦除和编程FLASH的启动块,FEETST主要用来进行测试,而FEECTL则具体控制FLASH的读写编程。

来源: ofweek

围观 387

1 引言

MIL-STD-1553B军用总线标准,在军事装备,特别是飞机系统中得到了广泛的应用,舰载系统中也正在逐步推广。对于1553B总线传输信息的飞机系统,特别是由该总线网络构成的综合航火控系统、通信系统而言,系统时实监测与在线故障诊断均建立在信息录取的前提下。为了方便录取1553B总线上传输的信息就需要应用1553B总线到计算机标准接口转换器,目前常用转换器有1553B-PCI、1553B-VXI等,但在工程实践过程中,它们存在体积大、价格高、使用不方便等缺陷。相比而言,USB接口具有体积小、携带方便、热插拔等特征,具有不可替代的优势。

本文介绍的1553B设备检测系统就是基于USB接口的。设计包含两大部分:硬件设计和软件设计。硬件设计主要实现1553B接口到USB接口的转换;软件设计主要是USB芯片固件开发、USB接口驱动、开发计算机测试1553B设备软件。

2 硬件系统设计

本系统的硬件设计工作主要集中在1553B与USB总线接口的转换设计。硬件系统分成三部分:1553B接口转换电路、FPGA译码电路和USB接口电路。

2.1 1553B接口转换电路

目前,1553B接口芯片种类繁多,根据工程应用场合和实际需要,我们选用DDC公司BU-61580芯片。BU-61580芯片除了具有远程终端(RT)功能外,还可以用作总线控制器(BC)、总线监控器(MT)。其内部功能极强,接口灵活、便于控制,有各种封装形式和供电电压供用户选择。

2.2 FPGA译码电路

FPGA作为现场可编程器件越来越广泛地应用到工程设计中。利用FPGA对系统中信号进行译码可避免由于开始硬件电路设计考虑不周造成的硬件设计错误,而且方便系统的以后的升级。本系统中,FPGA通过1553B接口芯片读取1553B总线上的数据并暂存在FPGA内部RAM中,然后通知USB接口芯片把数据读出;同时,还要通过USB接口接收从PC下发的数据,重新打包,发送到1553B设备。

2.3 USB接口电路

USB接口控制芯片包含两大类:一类是需要外置控制器的芯片,还有一类为内置控制器,如Cypress公司的CY7C64613芯片。本系统选用PHILIP公司的PDIUSBD12芯片,需外置控制器的芯片。

PDIUSBD12芯片是带有并行总线和局部DMA传输能力的全速USB接口器件。片内集成了高性能USB接口器件、SIE、FIFO存储器、收发器以及电压调整器等,可与任何外部微控制器/微处理器实现高速并行接口(2MB/s),完全能匹配1553B总线最高传输速率(1MB/s)。

USB 实现模块的核心是PIDUSB12。外置控制器AT89C52的P0口接PIDUSBD12的DATA0~DATA7,用来传输要交换的数据。P0 口所有引脚都要外接上拉电阻。PIDUSBD12的片选信号和复位信号由AT89C52的P1.6与P1.7提供。AT89C52 的P3.6与P3.7作为PIDUSBD12的写读控制端,AT89C52和PIDUSBD12的ALE相连,PIDUSBD12的挂起状态和中断控制都接高电平。 PIDUSB12的D+和D-加上+5V电源和地就构成了USB接口,从而能与计算机相连。

PDIUSBD12与USB的连接通过1.5K上拉电阻将D+置为高实现,默认状态不与Vcc相连,可用SoftConnect技术通过AT89C52发送专门的命令来实现该连接,允许AT89C52在决定与USB建立连接之前完成初始化时序,USB总线连接可以重新初始化而不需要拨出电缆。随后USB设备识别和通信就要依靠固件程序和驱动程序了。

3 软件设计

1553B设备测试软件首先要实现USB接口与PC之间的通信,然后,再对设备进行性能检测。因此,需要对USB芯片进行固件、PC驱动程序和测试程序设计。

3.1 USB固件设计

AT89C52中的固化程序可采用C51 设计,
主要功能是:
控制PDIUSBDl2接受USB驱动程序的请求;
控制PDIUSBDl2接受应用程序的控制指令;
通过PDIUSBDl2存储数据并实时上传PC机。

PDIUSBDl2的固件设计成完全的中断驱动,当CPU处理前台任务时USB的传输可在后台进行,确保了最佳的传输速率和更好的软件结构,简化了编程和调试。

单片机通过PDIUSBDl2与主机通信的过程简述如下:
当PDIUSBDl2接收到主机发来的令牌包后就给单片机发中断,单片机进入中断服务程序。它将数据从PDIUSBD12的内部FIFO取回到CPU存储器并根据中断寄存器判断USB令牌包的类型从而建立正确的事件标志以通知主循环程序进行处理,主循环检查事件标志并进入对应的子程序进行进一步的处理。

系统上电后,先检测PDIUSBD12,如检测不成功则报错,要使用者重插USB接口,再次检测。检测成功则根据PDIUSBD12的中断类型设定中断标志位的值,再根据中断位的值调用相应的功能子程序。

在本设计中,功能子程序主要包括两部分:

1)通过AT89C52的P0端口从FPGA接收1553B设备数据,重新打包,再经过P0端口写入PC机;

2) 通过P0端口接收PC数据,重新打包,通过AT89C52的P0端口从FPGA写入1553B设备。

3.2 驱动程序

完成驱动程序设计的方法一般有三种:基于DDK开发、基于Windrive开发和基于DriveStudio开发。由于Windrive和DriveStudio开发对DDK中的函数进行了一定程度的封装,它们开发的难度比直接用DDK开发要小,但开发的灵活性不如DDK。本设计使用的驱动是DriveStudio与DDK配合进行开发,开发驱动程序的效率较高。

在驱动程序开发平台搭建成功后,我们利用驱动程序生成向导Driver Wizard,根据硬件设置生成USB设备驱动程序的大体框架。

设置如下:
①选择 WDM的驱动程序类型和Windows 2000运行平台。
②选择 USB总线类型,填写它的VID(供应商ID)和PID(设备ID),这些信息由芯片的供应商提供。
③增加端点 1和端点2,它们分别具有IN 和OUT属性。
④根据需要选择对设备的操作有:Read、Write、Device Control和CleanUp。
⑤选择给端点2产生 BULK Read和Write的代码, 向导会自动产生一套对端点2进行读、写的代码。
⑥设置驱动程序的属性,采用WDM接口;在选取读写方式时应遵循一条原则:需要快速传送大量数据时,用 Direct I/O,反之用 Buffer I/O,本设计数据量不大,故选用Buffer I/O;由于无特殊的电源需求,故选用系统默认的Manage Power For This Device。
⑦增加IOCTL接口,在其生成的代码框架中加入自己的操作,以实现一个完整的USB 设备驱动程序。最后就生成了一个 WDM 型的 USB 设备驱动程序框架和一个测试该驱动程序的测试程序大体框架。然后在其中添加需要的功能代码。

通过DriveStudio初步建立一个驱动程序框架后,我们只要修改TESTFIRMDevice.h和TESTFIRMDevice.cpp就可以了,修改完毕后,可以发现使用DriveStudio向导生成的USB设备驱动程序,不仅不需要对底层的硬件进行编程,甚至可以忽略与硬件控制紧密相关的复杂的Windows数据结构(如,URB、IPR)、API函数(DriveEntry()、IoCreateDevice()、AddDevice())的使用。

用DriveWizard创建USB框架程序自动生成的两个工程(Project)文件:TESTFIRM驱动程序工程和Test_TESTFIRM应用程序工程,将光标定位在其中一个工程上之后,单击右键,选择“set as Acnve Pmiect”即可设置该工程为当前活动工程。对于驱动程序编译,不用进行任何设置,单击Build图标即可生成USB驱动程序TESTFIRM.sys文件。

3.3 通信程序

因为DriveStudio已经替我们把核心驱动程序基本开发完了,在本设计中,只要掌握WriteFile和ReadFile两个函数的使用就可以进行简单的USB通信了。由于DriveStudio所用的类库是对DDK函数一定程度的封装,必须在 VB、VC++等软件开发环境中编译,创建自己的库文件,所以很容易为程序增加了图形界面,使用户操作更加方便。

当USB设备与PC通信时,USB设备是从设备,PC是主设备。PC机通过检测USB总线数据端电平判断是否接入或拔出USB设备。PC检测到USB设备后,调用USB设备函数。如果设备被正确打开,软件开启监听USB设备线程,以20ms周期轮询USB接收数据接口。一旦接收到数据,数据就被分析并且回显到界面上,直到线程被中断。

4 结论

1553B总线是当前飞机系统中广泛应用的总线类型,将它与USB总线融合起来具十分重要的实际意义。在开发过程中,利用DriveStudio与DDK配合进行开发USB驱动程序,大大提高了开发的效率。本设计在实际设备测试中,板卡可以稳定工作,测试软件工作正常,满足项目设计要求。

本文作者创新点:利用PDIUSBDl2外置CPU控制数据的读入和写出,开发USB驱动程序,结合FPGA完成系统时序控制,是对1553B-USB转换器设计一种有益的探索。

来源: 21ic.com

围观 428

目前国内对1553B总线接口板的设计一般基于DDC公司BU-61580协议芯片完成,但只能完成协议处理部分,应用时还需外围的存贮器和微处理器等辅助芯片。故采用现场可编程门阵列(FPGA)实现整个接口板核心的设计。

1 系统总体架构

1553B总线信号进入接口板后,首先通过隔离变压器进行电平转化,使之匹配后面收发器的工作电压。收发器再把电平转化后1553B差分信号转化为可识别的TTL电平。但此时的信号仍然是曼彻斯特Ⅱ型码,故需经解码和串并转换,同时完成数据字的同步、数据、曼彻斯特码错误的检出、奇偶检测和位/ 字计数等,处理后的数据串并转换后存入内存再对其进行相关的协议处理。发送数据时,将终端接收的数据暂存于内存中,等待发送命令。一旦收到发送命令,即发送数据并通过并串转换后进行曼彻斯特编码且调制解调后发送到1553B的双余度总线上。

2 系统硬件构成及其实现

信号调制解调用隔离变压器和收发器,分别采用的是HOLT公司PM-DB2725EX和HI-1570芯片。而从曼彻斯特编解码后的部分都可在一片FPGA芯片内实现,选定Altera公司CyclONe系列的EP1C12作为主芯片。其中FPGA与总线间接口部分的电路如图2。

FPGA与总线间接口部分的电路

3、FPGA内部的模块构成及实现

FPGA片内的实现,通过Verilog程序和调用QuartusII软件内部宏模块完成,可分为双冗余曼彻斯特II编解码及串并转换、总线传输逻辑、终端协议和消息处理、内存及控制器和子系统等模块。

3.1 双冗余曼彻斯特II编解码及串并转换模块

该模块实现曼彻斯特码的编解码,串并转换后同总线传输逻辑模块进行通信。原始数据采样采用16M时钟频率。

3.2 总线传输逻辑模块

该模块对上一模块的16位并行数据按1553B协议定义进行分解、存储,并给协议模块响应信号及对其命令执行,发出相应状态字和数据字。

3.3 内存及控制器模块

用作系统寄存器和与下级子系统进行数据交换的数据存贮区,以响应其它各模块可能存在的寄存器和数据访问,该模块由以下3个子模块组成:

DPSRAM模块:为Quartus软件宏模块altsyncram的实例化调用,在物理上为FPGA芯片片内SRAM的调用。实例化调用后为双端口可同时读写的同步SRAM内存,以满足总线传输逻辑,协议处理模块,初始化自检模块之一和子系统模块可能同时存在的访问请求。

RAM_Control模块:为上一模块DPSRAM的内存控制器,根据上游(user_interface模块)信号产生符合DPSRAM时序的读写使能,地址,数据和读写确认信号。

user_interface模块:解决多端口输入不能直接线与和定向输出从DPSRAM读取的数据的问题。

3.4 终端协议和消息处理模块

该模块解析接收到的命令并通知总线传输模块做出相应的响应。可分为以下4个子模块:①read模块完成指令字的读取;②protocol模块完成指令字分析和协议的处理;③write模块根据protocol模块解析命令后发过来的指令完成对应状态字的修改;④choose模块将对read和 write两个模块发给ram的命令和地址进行选通。

3.5 子系统模块

子系统含收发、终端地址产生和校验等模块。①收发模块:完成存贮器16位的并行数据和2400bit串行数据的转换;②终端地址产生和校验模块:终端地址由子系统的拨码开关设定,即读取拨码开关的电平值并产生相应的地址奇校验位后存贮到内存的终端地址寄存器中,并初始化状态字。编写以上各模块代码时,状态机跳转的条件原来是检测电平值,但在仿真过程中发现有时检测不到或多次检测到从而导致状态机误操作,改用如下跳变沿检测后问题得到解决,对应代码为:

对应代码

其原理为:将需检测的信号不断地通过2个D触发器连续锁存2次,当检测到2次锁存的值符合跳变沿条件时才执行动作如图3。采用该检测方式后程序仿真不出现类似不稳定问题,但同时也造成1个时钟周期的额外延时。

3.6 仿真及FPGA实现

以上各功能模块采用Verilog编写,内存则调用QuartusII宏模块。整个程序的功能仿真,综合布线和最后的时序仿真均用ALTERA公司的QuartusII完成。各模块综合后在QuartusII中编译后生成symbol。

为某型号调谐滤波器与1553总线通信的消息仿真波形。其中:RT地址设定为00101,即图4中拨码开关pat4~pat0的电平值,子地址为00001。复位后第1条消息为RT不发送数据请求时发送矢量字模式命令及其响应,状态字所带的数据字为&H0000,该命令循环发送至 RT直到有请求第3条消息的情况;第2条消息为RT接收1个数据字命令及其响应;第3条是当RT有发送数据请求时的发送矢量字及其响应,状态字所带的数据字为&H0001;第4条是RT发送两个数据字命令及其响应;第5条是带数据字的同步模式命令及其响应。

由仿真波形可见,该系统基本满足该滤波器的应用,为进一步验证其实际应用和其他协议,将其下载至FPGA中进行测试。FPGA内部是基于 SRAM结构的,因此需要1片配置芯片固化其内部结构,故采用JTAG模式和主动串行模式(AS)2种配置模式。调试时使用JTAG模式直接将逻辑写入 FPGA内部,调试好后再用AS模式将程序写入配置芯片EPCS4中,经测试通过。

4 结语

基于FPGA技术的总线接口板设计,已通过某军用飞机的测试,实现1553总线和子系统的通讯。将FPGA技术应用于1553B总线接口,设计成本降低,设计周期缩短,系统的集成度提高,扩展能力增强,具有重要的现实意义和应用前景。

来源: 电子产品世界

围观 453

总线,总要陷进里面。这世界上的信号都一样,但是总线却成千上万,让人头疼。

总的来说,总线有三种:内部总线、系统总线和外部总线。内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连;而系统总线是微机中各插件板与系统板之间的总线,用于插件板一级的互连;外部总线则是微机和外部设备之间的总线,微机作为一种设备,通过该总线和其他设备进行信息与数据交换,它用于设备一级的互连。

除了总线外,还有一些接口,它们是多种总线的集合体,或者说来者不拒。

SPI

SPI (Serial Peripheral Interface):MOTOROLA公司提出的同步串行总线方式。高速同步串行口。3~4线接口,收发独立、可同步进行。

因其硬件功能强大而被广泛应用。在单片机组成的智能仪器和测控系统中。如果对速度要求不高,采用SPI总线模式是个不错的选择。它可以节省I/O端口,提高外设的数目和系统的性能。标准SPI总线由四根线组成:串行时钟线(SCK)、主机输入/从机输出线(MISO)。主机输出/从机输入线(MOSI)和片选信号(CS)。有的SPI接口芯片带有中断信号线或没有MOSI。

SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现多个SPI设备互相连接。提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。

I2C

I2C (Inter-Integrated Circuit):由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。

I2C总线用两条线(SDA和SCL)在总线和装置之间传递信息,在微控制器和外部设备之间进行串行通讯或在主设备和从设备之间的双向数据传送。I2C是OD输出的,大部分I2C都是2线的(时钟和数据),一般用来传输控制信号。

I2C是多主控总线,所以任何一个设备都能像主控器一样工作,并控制总线。总线上每一个设备都有一个独一无二的地址,根据设备它们自己的能力,它们可以作为发射器或接收器工作。多路微控制器能在同一个I2C总线上共存。

UART

UART:通用异步串行口,按照标准波特率完成双向通讯,速度慢。

UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。

UART是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。作为接口的一部分,UART还提供以下功能:

将由计算机内部传送过来的并行数据转换为输出的串行数据流。将计算机外部来的串行数据转换为字节,供计算机内部使用并行数据的器件使用。在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验。在输出数据流中加入启停标记,并从接收数据流中删除启停标记。处理由键盘或鼠标发出的中断信号(键盘和鼠标也是串行设备)。可以处理计算机与外部串行设备的同步管理问题。有一些比较高档的UART还提供输入输出数据的缓冲区,现在比较新的UART是16550,它可以在计算机需要处理数据前在其缓冲区内存储16字节数据,而通常的UART是8250。现在如果您购买一个内置的调制解调器,此调制解调器内部通常就会有16550 UART。

SPI、I2C和UART做个比较

SPI 和I2C这两种通信方式都是短距离的,芯片和芯片之间或者其他元器件如传感器和芯片之间的通信。SPI和IIC是板上通信,IIC有时也会做板间通信,不过距离甚短,不过超过一米,例如一些触摸屏,手机液晶屏那些薄膜排线很多用IIC,I2C能用于替代标准的并行总线,能连接的各种集成电路和功能模块。I2C是多主控总线,所以任何一个设备都能像主控器一样工作,并控制总线。总线上每一个设备都有一个独一无二的地址,根据设备它们自己的能力,它们可以作为发射器或接收器工作。多路微控制器能在同一个I2C总线上共存这两种线属于低速传输。

而UART是应用于两个设备之间的通信,如用单片机做好的设备和计算机的通信。这样的通信可以做长距离的。UART速度比上面两者者快,最高达100K左右,用与计算机与设备或者计算机和计算之间通信,但有效范围不会很长,约10米左右,UART优点是支持面广,程序设计结构很简单,随着USB的发展,UART也逐渐走向下坡。

I2S

I2S(Inter-IC Sound Bus)是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准。

I2S则大部分是3线的(除了时钟和数据外,还有一个左右声道的选择信号),I2S主要用来传输音频信号。如STB、DVD、MP3等常用。

I2S标准中,既规定了硬件接口规范,也规定了数字音频数据的格式。I2S有3个主要信号:1)串行时钟SCLK,也叫位时钟(BCLK),即对应数字音频的每一位数据,SCLK都有1个脉冲。SCLK的频率=2×采样频率×采样位数。2)帧时钟LRCK,(也称WS),用于切换左右声道的数据。LRCK为“1”表示正在传输的是左声道的数据,为“0”则表示正在传输的是右声道的数据。LRCK的频率等于采样频率。3) 串行数据SDATA,就是用二进制补码表示的音频数据。

有时为了使系统间能够更好地同步,还需要另外传输一个信号MCLK,称为主时钟,也叫系统时钟(Sys Clock),是采样频率的256倍或384倍。

GPIO

GPIO (General Purpose Input Output 通用输入/输出)或总线扩展器,利用工业标准I2C、SMBus或SPI接口简化了I/O口的扩展。

当微控制器或芯片组没有足够的I/O端口,或当系统 需要采用远端串行通信或控制时,GPIO产品能够提供额外的控制和监视功能。每个GPIO端口可通过软件分别配置成输入或输出。Maxim的GPIO产品线包括8端口至28端口的GPIO,提供推挽式输出或漏极开路输出。提供微型3mm x 3mm QFN封装。

GPIO的优点(端口扩展器):

低功耗:GPIO具有更低的功率损耗(大约1μA,μC的工作电流则为100μA)。

集成IIC从机接口:GPIO内置IIC从机接口,即使在待机模式下也能够全速工作。
 
小封装:GPIO器件提供最小的封装尺寸 ― 3mm x 3mm QFN!

低成本:您不用为没有使用的功能买单!

快速上市:不需要编写额外的代码、文档,不需要任何维护工作! 
灵活的灯光控制:内置多路高分辨率的PWM输出。

可预先确定响应时间:缩短或确定外部事件与中断之间的响应时间。

更好的灯光效果:匹配的电流输出确保均匀的显示亮度。

布线简单:仅需使用2条IIC总线或3条SPI总线

SDIO

SDIO是SD型的扩展接口,除了可以接SD卡外,还可以接支持SDIO接口的设备,插口的用途不止是插存储卡。支持 SDIO接口的PDA,笔记本电脑等都可以连接象GPS接收器,Wi-Fi或蓝牙适配器,调制解调器,局域网适配器,条型码读取器,FM无线电,电视接收 器,射频身份认证读取器,或者数码相机等等采用SD标准接口的设备。

SDIO协议是由SD卡的协议演化升级而来的,很多地方保留了SD卡的读写协议,同时SDIO协议又在SD卡协议之上添加了CMD52和CMD53命令。由于这个,SDIO和SD卡规范间的一个重要区别是增加了低速标准,低速卡的目标应用是以最小的硬件开始来支持低速I/O能力。低速卡支持类似调制解调器,条形码扫描仪和GPS接收器等应用。高速卡支持网卡,电视卡还有“组合”卡等,组合卡指的是存储器+SDIO。

SDIO和SD卡的SPEC间的又一个重要区别是增加了低速标准。SDIO卡只需要SPI和1位SD传输模式。低速卡的目标应用是以最小的硬件开支来支持低速I/O能力,低速卡支持类似MODEM,条形扫描仪和GPS接收器等应用。对组合卡来说,全速和4BIT操作对卡内存储器和SDIO部分都是强制要求的。

在非组合卡的SDIO设备里,其最高速度要只有达到25M,而组合卡的最高速度同SD卡的最高速度一样,要高于25M。

CAN

CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。最初,CAN被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU之 间交换信息,形成汽车电子控制网络。比如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入CAN控制装置。

一个由CAN 总线构成的单一网络中,理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制。例如,当使用Philips P82C250作为CAN收发器时,同一网络中允许挂接110个节点。CAN 可提供高达1Mbit/s的数据传输速率,这使实时控制变得非常容易。另外,硬件的错误检定特性也增强了CAN的抗电磁干扰能力。

CAN总线的特点:

1)可以多主方式工作,网络上任意一个节点均可以在任意时刻主动地向网络上的其他节点发送信息,而不分主从,通信方式灵活。

2)网络上的节点可分成不同的优先级,可以满足不同的实时要求。

3)采用非破坏性位仲裁总线结构机制,当两个节点同时向网络上传送信息时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传送数据。

4)可以点对点,一点对多点及全局广播几种传送方式接收数据。

5)直接通信距离最远可达10km(速率4Kbps以下)。

6)通信速率最高可达1MB/s(此时距离最长40m)。

围观 502

页面

订阅 RSS - 总线