基于FPGA 的VME自定义总线接口设计论文(通用13篇)由网友“来只长颈鹿吗”投稿提供,以下是小编收集整理的基于FPGA 的VME自定义总线接口设计论文,欢迎阅读与借鉴。
篇1:基于FPGA的VME自定义总线接口设计论文
基于FPGA的VME自定义总线接口设计论文
1.引言
在光刻机双工件台控制系统中,VME总线使用了三个接口共430根线路接入,通过背板互联的有P1,P2两个接口320根线路接入。实际上VME标准协议并没有完全使用全部线路,而是为用户预留了部分自定义线路,增加了设计的灵活性。由于VME总线主要用于工控机与各板卡的通信,同步控制卡与激光计数卡和光栅译码卡使用总线就会产生严重冲突,影响采用是实时性,因此这里将VME总线中未使用的管脚作为自定义总线管脚,这样避免了增加新的硬件接口,而且在硬件设计上可以和VME总线一起考虑。
自定义同步总线数据传输完全根据主控总线提供的时序进行,地址线包含了对数据发送和接收方的定义。每个总线传输周期中,数据发送端和接收端的身份根据地址寻址关系自动切换,而避免了总线控制权更迭时的握手,及数据传输优先级或传输抢占等问题,总线控制信号来自同一个时钟域,从节点仅响应控制信号,可忽略节点间时钟相位差影响。在每个伺服周期,设计了一个数据传输序列来实现共享数据交互。数据传输序列由若干个总线传输周期构成,每个周期完成32bit的数据共享。通过设定总线地址来设置数据传输序列的传输内容,当所有的设定总线地址被遍历,则当前周期数据传输已经完成,所有被规划传输的数据都被所有的运动控制卡所共享。
2.VME自定义总线逻辑协议的实现
VME自定义总线是一条并行运行的总线,该总线釆用数据广播的方式,可以方便各个板块同时接收同一个数据。其由同步控制卡提供5KHz时钟,每200us同步控制卡将数据锁存线拉高,向光栅译码卡发出一个脉冲,此时光栅译码卡和激光干涉仪等设备锁存该时刻的数据,其读数不再发生变化,然后同步控制卡产生一连串的.读取信号,将各个光栅尺的数据读出。同时切换总线上的地址,并生成釆样保持,读取和地址三个信号置于自定义总线,运动控制卡通过对自身所需的地址的识别在读信号低电平时获得相应位置传感器的信号。
2.1 VME自定义总线接口的实现
VME自定义总线在VME的P2口上,时钟频率是5KHz,用于传输激光干涉仪和光栅尺的测量数据。在实际应用中,位置环釆样周期为200us,并且有大量的实时伺服数据在运动控制卡与光栅译码卡之间、运动控制卡与运动控制卡之间、运动控制卡与同步总线控制卡之间交换。如果在运动控制中,这些伺服数据使用VME总线进行交换,则会堵塞系统总线,使PowerPC无法进行正常工作。为此,利用光栅译码卡的技术特点以及VME的P2自定义接口,构造自定义局部总线。并设计专用同步总线控制模块对同步总线进行控制。自定义同步总线接口逻辑同样釆用FPGA芯片来实现,使其达到灵活、可靠、集成度高的设计要求。
自定义同步总线的主控制器由运动控制系统中的同步总线控制卡来实现,而运动控制卡中只需实现自定义总线的从接口。从控制器结构如图1所示,其功能包含以下方面:
提供DSP对于双口RAM访问的地址译码,将DSP的标准EMIF接口时序转换成双口RAM访问时序,该功能在EMIF时序匹配模块中完成;
完成自定义总线的读写逻辑,当自定义总线的地址有效后,数据方向控制模块将判断当前运动控制卡是数据发送端还是数据接收方,以切换数据总线方向;
当某一个特定的自定义总线地址访问出现的时候,总线时序匹配模块将产生中断信号提供给DSP,提供同步触发步控制卡VME自定义总线逻辑功能的实现
光栅译码卡接收来自光栅尺的信号,实现对工件台宏动部分的位置测量,测量数据通过自定义总线传送给同步控制卡。同步控制卡通过内部的定时器,产生运动周期开始信号,读取光栅译码卡的数据,然后将各个运动控制卡所需的信号,按照一定的地址编码,发送到VME64X总线的自定义总线上,由运动控制卡接收。运动控制卡接收到同步控制卡的运动周期开始信号后,依次接收指令位置和光栅尺数据,运动控制卡进行数据存储等其他操作,并等待下个运动周期的开始信号。
对于同步控制卡FPGA中逻辑协议的设计,釆用三段式状态机进行设计,第一段描述次态寄存器转到现态寄存器;第二段对状态转移条件进行判断,从而完成状态转移变换;第三段描述在各个状态完成的动作和对状态转移条件进行描述。
2.2 同步控制卡VME自定义总线读取光栅尺的逻辑转换
每200us向光栅译码卡发出一个脉冲,光栅译码卡接收到该脉冲后就会锁存当前数据,当脉冲到来时则转到S1状态,否则仍然处于S0。在S1状态时等待20ns,即让光栅译码卡把数据锁存完成,接着转到状态S2。在状态S2,将地址发送给光栅译码卡,并且等待30ns,让输出数据稳定,然后转到状态S3。在状态S3,将数据锁存,读操作的次数置零,并且将地址发送给双口RAM,延时10ns等待数据和地址稳定,然后转到状态S4。在S4对双口RAM进行写操作使能,即给写使能引脚置高电平,然后进入状态S5。在S5将读操作次数加1,并判断是12路数据是否读取完毕,即读次数是否等于12,若否则进入状态S6,否则进入状态S11。从状态S6到状态S10重复状态S1到S5的过程,直到读取完成。在状态S11,发出读取完成脉冲,并延时20ns到状态S12,最后返回状态S0等待。同步控制卡VME自定义总线设计实测结果,实测模块是接收12路光栅尺的数据,从图3可以看出,送到光栅译码卡的地址,在延迟一定时间后,稳定的数据才输出,所以这里是根据实测的延迟时间来决定模块设计中的相关信号的延迟。
将数据写人缓存必须等待数据稳定才能发出写信号。运动控制卡读取VME自定义总线数据逻辑功能的实现,在光刻机双工件台控制系统中,每块运动控制卡实现,同步控制卡VME自定义总线设计实测结果。
实测模块是接收12路光栅尺的数据,从图3可以看出,送到光栅译码卡的地址,在延迟一定时间后,稳定的数据才输出,所以这里是根据实测的延迟时间来决定模块设计中的相关信号的延迟。
将数据写人缓存必须等待数据稳定才能发出写信号。运动控制卡读取VME自定义总线数据逻辑功能的实现,在光刻机双工件台控制系统中,每块运动控制卡实现对三个电机的控制,整个系统需要12块运动控制卡,它通过光纤口将控制信号传送到电机驱动。同步控制卡通过内部的定时器,产生运动周期信号,读取光栅译码卡中数据,进行解耦,然后将各个运动控制卡所需的信号,按照一定的地址编码,发送到VME64x自定义总线,由运动控制卡接收。运动控制卡接收到同步控制卡的运动周期开始信号后,依次接收指令位置和光栅译码卡的数据。
3.结束语
本文提供了一种基于FPGA的VME自定义总线的逻辑接口设计,同步控制卡作为“主卡”,读取光栅译码卡中的测量数据,并将数据置于VME自定义总线上,其负责自定义在总线的逻辑设计。运动控制卡,接收来自自定义总线上的数据,并通过DSP进行处理,最后发送给电机,控制电机的运动轨迹。该设计方案通过了实际验证,并利用Signal Tap观测了其逻辑时序,可得该方案正确。
篇2:消费总线电力线接口电路的设计
摘要:在介绍消费总线物理层技术参数的基础上,给出了P89C51RD2单片机与P300/P111构成的电力线扫频载波通讯模块的设计方案,重点论述了通讯模块电力线接口电路设计中所涉及的滤波电路、放大电路、耦合电路及其保护措施。
关键词:电力线载波消费总线
智能家庭要求家用电器经网络(总线)实现互联、互操,总线协议是其精髓所在。目前,国际上占主导地位的家庭网络标准有:美国的X10[1]、消费总线(CEBus)[2]、日本的家庭总线(HOMEBUS)[3]、欧洲的安装总线(EIB)[4]。
消费总线使用五种类型的介质(电力线、无线、红外、双绞线和同轴电缆),其中以电力线的应用最为广泛。消费总线得到IBM、Hownywell、Microsoft、Intellon、Lucent、Philips、Siements等大公司的支持,1992年成为美国电力工业协会的标准(EIA600、EIA721)。,EIA600成为美国ANSI标准;6月,微软和CEBus委员会共同宣布支持CEBus的简单控制协议SCP。SCP是未来微中UPNP协议的子集。
1CEBus电力线物理层
鉴于家庭中电力线载波通讯的特殊性,CEBus采用价格低廉、简单易行的线性调频(chirp)扩频调制技术。摒弃了传统电力线载波通常应用的直接序列扩频、调频扩频、跳时扩频等设备复杂、价格昂贵的扩频调制技术。
图2通用通讯模块的原理图
消费总线的物理层有四种码,分别是:“0”、“1”、“EOF”和“EOP”。均为扫频信号,正弦信号载波,从203kHz经过19个周期线性地变为400kHz,再经过1个周期变为100kHz,然后在5个周期中变为203kHz,整个过程用时100μs,也就是1个UST(Unitsymbletime,在消费总线中用多少个UST来度量时间)。其波形如图1所示。
chirps扫频载波需经过放大耦合到电力线上,放大后的幅度应适中。幅度太低,给接收电路带来困难;幅度太大,又会对电力线上的设备产生干扰。CEBus的规定如表1[5]所示。
表1不同条件下的载波幅度值
设备工作电压最小幅值最大幅值负载范围~120V2.5Vpp7Vpp10Ω~2kΩ~240V5Vpp14Vpp39Ω~8.2kΩ
表2不同条件下的设备输入阻抗值
设备工作电压设备输入阻抗(在频率20kHz~50000kHz)载波幅值~120V>150Ω6Vpp~240V>300Ω12Vpp
同时也规定了电器设备对信号的阻抗。如果阻抗很小,就会将信号吸收从而无法传送国。规定如表2[5]所示。
线性调频技术实现宽带低功率密度传输,从而大大提高抗干扰性能和传输距离。同时,chirps具有很强的自相关性和自同步性。这种自相关决定了所有连接在网络上的设备可以同时识别从网上任意设备发出的这种特殊波形。
2通讯模块的设计
根据P89C51RD2和P300的芯片手册[6][7],设计的通用通讯模块的原理图如图2所示。P89C51RD2和P300之间采用SPI接口通讯,用模拟的I2C总线和串行EEPROM通讯。这样,中断口、串口和有足够的I/O口可以用于实际设备的设计。
篇3:消费总线电力线接口电路的设计
从P300输出的信号幅度小、驱动能力弱而且还有高次谐波,因此必须经过滤波和放大,然后才能通过耦合电路将信号调制到电力线上。耦合电路将高压和低压隔离开,防止高压击穿通讯电路。另一方面,从电力线来的载波信号又要由P300接收,而电力线上的干扰很大也很不确定,所以需要一个带通滤波器,通过100kHz~400kHz之间的信号,再送到P300的接收端。电路的方框图如图3所示。
其中左边的3根线来自P300,TS是数字信号,控制收发转换。实际上P300的收发类似半双工方式,因为当它在“发送”劣态的时候,实际上并没有输出信号。因此,这个时候它可以处于接收状态,如果接收到了优态,就表示发生了竞争。
3.1滤波电路
输入滤波器电路如图4所示。
这个滤波器有6阶,对高频干扰有很好的抑制,图5是它的频率响应曲线。在高频段400kHz处衰减为3dB。高于400kHz的平均衰减为3dB,高于400kHz的平均衰减为128dB/dec,可以有效地过滤干扰信号。
P300输出的信号包含丰富的高次谐波,为了减小对电网的干扰,先经过带通滤波器再进行放大。滤波器也采用无源电路,原理与上面类似,这里不再多述。
3.2放大电路
P300的输出信号经过滤波之后,其内阻很大,没有驱动能力,而且电压幅度不符合消费总线的要求,必须放大后才能够驱动电力线。放大电路不仅要有强有力的输出能力,还需有禁止输出功能,这样才能使P300接收其它节点发出信号。
电网的性能不确定,有时是容性负载,有时是感性负载。这样就给末级电路采用反馈带来很大困难。因为当负载的阻抗特性变化时,输出的信号相位会发生变化,最终有可能是负反馈变成了正反馈,从而引起振荡。
图6电力载波放大电路
设计的电力载波放大电路如图6所示,虚线的左边的原理图,右边是实现电路图。可以看出,这个电路有两个输入,一个输出。输入信号来自P300的.电力载波,输出使能控制放大器运行。图6的左半部分,T1和T2接成互补式OTL输出,它们的偏置电压来自电阻R1、R2的分压。来自P300的信号经过运放U1放大达到期望的幅度,然后通过电容耦合到T1和T2的基极。如果开关S1和S2合上,则T1和T2正常输出电信,P300可以发送数据;如果S1和S2都断开,那么T1和T2的基极都处于悬空状态,输出端也成为悬浮状态,从而不会吸收由电力线传来的信号,P300可以接收信号。
在图6的右边,开关S1和S2也被T7和T8取代,T1和T2被复合管取代,其中的电阻R11用来消除三极管漏电电流的影响。采用复合管是为提高放大倍数,这样可以尽量减小级间耦合,即使输出信号发生了畸变,也不会影响到前级而发生振荡。实际证明这种做法是很可行的。其对容性负载、感性负载以及纯电阻的负载都有较稳定的输出,输出阻抗小于2Ω。
图7P300与电力线的耦合电路
3.3耦合电路及保护措施
图7中J1接到电力线,R1是压敏电阻,它可以使尖峰脉冲短路,变压器T1实现了高压与低压的隔离。因为载波的频率比较高(100kHz~400kHz),远远大小电网的频率,这样就使载波信号畅通无阻,而能够隔断高压。电容C1阻断低频高压,阻止变压器饱和;电阻R2取值比较大,作用是在离线时使电容放电,防止在设备插头的两端出现高压。Z1是瞬变抑制二极管(TransientVoltageSuppressor,或称TVS),它可以有效地避免后而电路被高压击穿。L1、D1、D2也是为防止高压击穿放大电路而设计的。电力线上的设备接入或者是断开,都有可能引起尖峰脉冲,并导致收发电路的永久损坏。所以高压保护措施是至关重要的。
除了电力线上会产生高压脉冲破坏器件以外,当设备刚刚接上电源时(参看图7),如果电力线刚好处于电压的最大值,而此时电容上的电压为0,会有300V(220V有效值,最大值311V)的高压直接加在变压器两端,引起很大的电流,从而在次级产生尖峰脉冲。这个脉冲的电流相当大,可达几十安培到上百安培,采用一般的稳压管根本没有办法消除这个脉冲。笔者曾经尝试过采用压敏电阻吸收这个脉冲,但压敏电阻的响应比较缓慢,在出现脉冲的一微秒之内仍然有几十伏的电源,足以烧坏放大电路。实践表明,这种刚刚接入电路时的瞬态脉冲所产生的破坏力相当大。幸运的是,它的电流虽然很大,但是能量却不是那么大。笔者采用的瞬变抑制二极管1.5KE6.8CA响应时间是5ns,能够吸收200A电流,瞬态功率可达1500W。可以简单地把它看作是一个具有强大吸收电流能力的稳压二极管,但它的动态电阻比较大,所以还需要D1和D2这两个肖特基二极管进一步把电阻钳位在电源电压左右,电感L1的作用是阻断特别窄的高压脉冲。经过这些保护措施,后面电路没有出现过任何故障。
在设计电路板时,应该充分考虑到电路板敷铜皮的阻抗影响,例如在图8的电路板布局中,Z1是瞬变抑制器件,元件的引线和铜皮都会引入电感,从而消弱吸收效果。
篇4:消费总线电力线接口电路的设计
消费总线电力线接口电路的设计
摘要:在介绍消费总线物理层技术参数的基础上,给出了P89C51RD2单片机与P300/P111构成的电力线扫频载波通讯模块的设计方案,重点论述了通讯模块电力线接口电路设计中所涉及的滤波电路、放大电路、耦合电路及其保护措施。关键词:电力线载波 消费总线
智能家庭要求家用电器经网络(总线)实现互联、互操,总线协议是其精髓所在。目前,国际上占主导地位的家庭网络标准有:美国的X10[1]、消费总线(CEBus)[2]、日本的`家庭总线(HOME BUS)[3]、欧洲的安装总线(EIB)[4]。
消费总线使用五种类型的介质(电力线、无线、红外、双绞线和同轴电缆),其中以电力线的应用最为广泛。消费总线得到IBM、Hownywell、Microsoft、Intellon、Lucent、Philips、Siements等大公司的支持,1992年成为美国电力工业协会的标准(EIA600、EIA721)。,EIA600成为美国ANSI标准;6月,微软和CEBus委员会共同宣布支持CEBus的简单控制协议SCP。SCP是未来微中UPNP协议的子集。
1 CEBus电力线物理层
鉴于家庭中电力线载波通讯的特殊性,CEBus采用价格低廉、简单易行的线性调频(chirp)扩频调制技术。摒弃了传统电力线载波通常应用的直接序列扩频、调频扩频、跳时扩频等设备复杂、价格昂贵的扩频调制技术。
图2 通用通讯模块的原理图
消费总线的物理层有四种码,分别是:“0”、“1”、“EOF”和“EOP”。均为扫频信号,正弦信号载波,从203kHz经过19个周期线性地变为400kHz,再经过1个周期变为100kHz,然后在5个周期中变为203kHz,整个过程用时100μs,也就是1个UST(Unit symble time,在消费总线中用多少个UST来度量时间)。其波形如图1所示。
chirps扫频载波需经过放大耦合到电力线上,放大后的幅度应适中。幅度太低,给接收电路带来困难;幅度太大,又会对电力线上的设备产生干扰。CEBus的规定如表1[5]所示。
表1 不同条件下的载波幅度值
设备工作电压最小幅值最大幅值负载范围~120V2.5Vpp7Vpp10Ω~2kΩ~240V5Vpp14Vpp39Ω~8.2kΩ表2 不同条件下的设备输入阻抗值
设备工作电压设备输入阻抗(在频率20kHz~50000kHz)载波幅值[1] [2] [3]
篇5:AT89C52单片机与ARINC429航空总线接口设计
AT89C52单片机与ARINC429航空总线接口设计
摘要:DEI1016是一种可支持ARINC429航空总线协议的串行接收、发送器件。文中介绍了DEI1016的主要功能和工作原理,给出了DEI1016的数据收发过程,同时重点介绍了DEI1016与AT89C52单片机接口电路的设计方法。关键词:DEI1016;接收;发送;接口设计;AT89C52
1DEI1016的主要功能
DEI1016是DeviceEngineeringIncorporated生产的一种可支持ARINC429航空总线协议的串行接收、发送器件。该器件的主要功能如下:
●串行数据字长为32或25位;
●串行数据速率为100kbps或12.5kbps;
●具有独立的收、发电路;
●两个独立的接收器可直接与ARINC429总线接口;
●具有串/并接收数据转换,和并/串发送数据转换功能;
●对接收的数据可进行奇偶状态校验;并可对发送数据奇偶状态进行设置;
●可自动产生字与字之间的间隔;
●采用单一+5V供电。
2DEI1016的工作原理
DEI1016的引脚功能及特点以前已有介绍,现仅对该器件的工作原理作以描述。
2.1DEI1016的复位及初始化
电路上电后,首先在MR引脚施加200μs的低电平脉冲以使DEI1016复位,然后把控制字写到16位数据总线上,这样,在LDCW引脚施加低电平便可把控制字写入到控制字寄存器,尔后便可接收和发送数据。
2.2DEI1016的数据发送过程
DEI1016的数据发送时序如图1所示。发送数据时,首先应查询TXR引脚是否为高电平,若是高电平,表明发送存储器已空;此时置ENTX引脚为低电平可停止发送数据,并把要发送的数据写到16位数据总线上。之后,若要发送数据字1,则置LD1为低,LD2为高;若发送数据字2,则置LD1为高,LD2为低?此时再查询TXR引脚是否为低电平,若为低电平,表明发送数据已装载到存储器中,此时再置ENTX引脚为高电平即可发送数据。DEI1016的发送存储器最多可装载8个32位字长的数据,DEI1016采用的是先进先出的发送顺序。
2.3DEI1016的数据接收过程
DEI1016的数据接收时序如图2所示。当接收器1接收到数据后,系统会置DR1为低电平;而当接收器2接收到数据后,系统将置DR2为低电平。欲使接收器1将接收数据的字1送至16位数据总线上,应先置SEL为低电平,再置OE1为低电平且置OE2为高。而后再置SEL为高电平,便可将字2送至16位数据总线。要使接收器2的数据送至16位数据总线上,则置OE2为低电平,OE1为高电平即可。
表174LS373功能表
输出控制OE使能G输入D输出QLHHHLHLLLLXQoHXXZ
3AT89C52与DEI1016的接口设计
AT89C52(U1)8位微控器与DEI1016的16位数据总线进行数据交换时,必须先利用锁存器来锁存数据。其接口电路框图见图3。发送数据时,U1先把要发送的数据分成低8位和高8位送出,并进入U3、U4锁存,尔后再把16位数据一同送至DEI1016?U2?的数据总线上。U3、U4、U5、U6均选用74LS373芯片,它们的内部均由D锁存器和三态输出门组成,其功能表如表1所列。当OE为低电平,且G为高电平时,输出Q与输入D之间为直通方式。而当OE为高电平,且G由高电平跳变为低电平后,D端输入数据被D锁存器锁存,之后即使D端(P0口)输入数据再发生变化,也不会影响已锁存的数据。如果OE为低电平,系统将输出原先锁存的数据。为了锁存低8位数据,需要由U1的.WR和地址选通信号Y7(由译码器U7译出)经或非门U8去控制U3的G端。实际上,只有U1在执行写操作时,WR和Y7才同时为低电平,而此时低8位数据才能被U3暂时锁存。高8位数据的锁存与此类似M,U1的P3.4由高变低可打开U3、U4的输出门,从而使U3、U4把数据送至U2的数据总线,当U1的P1.3或P1.4由高变低以把16位数据装入发送存储器后,P3.4会由低变高,此时U3、U4输出为高阻抗状态,但不会影响U2的数据输出状态。其发送程序如下:
movdptr,#e000h
mova,#d1l;取字1的低8位
movx@dptr,a;把字1的低8位锁入U3
movdptr,#c000h
mova,#d1h;取字1的高8位
movx@dptr,a;把字1的高8位锁入U4
clrp3.4;打开U3、U4的输出
nop
clrp1.3;字1数据装入DEI1016
nop
setbp3.4;关闭U3、U4的输出
setbp1.3
movdptr,#e000h
mova,#d2l;取字2的低8位
movx@dptr,a;把字2的低8位锁入U3
movdptr,#c000h
mova,#d2h;取字2的高8位
movx@dptr,a;把字2的高8位锁入U3
clrp3.4;打开U3、U4的输出
nop
clrp1.4;字2数据装入DEI1016
nop
setbp3.4
setbp1.4
用U1接收数据,应将DR1、DR2及TXR经与门U13接至U1的INT0,在INT0口产生中断后,U1便执行读操作,并通过RD和Y5控制U14、U15以读入DR1、DR2及TXR的状态。U2接收到数据或发送数据完毕后,即向U1的INT0口申请中断,并在中断程序中判断DR1、DR2及TXR的状态。TXR为低表明发送完毕,而DR1或DR2为低则表明已收到数据。此时可置P1.2(SEL)为低电平,同时也置P1.0(接DEI1016的OE1)或P1.1?接DEI1016的OE2?为低电平,以使字1的数据出现在数据总线上,而使P1.0、P1.1经U11异或后输出以使U5、U6的G端为高电平,从而把数据锁入U5、U6。由于RD分别与Y7、Y6相或后的输出是与U5、U6的OE门相连接的,因此,U1执行读操作时,应先后打开U5、U6的OE门来把数据读入。其接收程序如下:(以接收器1为例)。
clrp1.2;置DEI1016的SEL=0,读字1
clrp1.0;置DEI1016的/OE1=0
setbp1.1;置DEI1016的/OE2=1
nop
movdptr,#e000h
movxa,@dptr;把字1的低8位读入
mov10h,a
movdptr,#c000h
movxa,@dptr;把字1的高8位读入
mov11h,a
setbp1.2;置DEI1016的SEL=1,读字2
nop
movdptr,#e000h
movxa,@dptr;把字2的低8位读入
mov12h,a
movdptr,#c000h
movxa,@dptr;把字2的高8位读入
mov13h,a
setbp1.0;置DEI1016的/OE1=1
setbp1.1;置DEI1016的/OE2=1
setbp1.2;置DEI1016的SEL=1
图3
DEI1016的两路接收可能产生同时接收的现象。即在上述两路共用一个中断源时,如果某一路申请中断已进入接收程序,那么另一路同时接收的数据就可能被屏蔽。解决方法是:进入中断程序后,在接收数据过程中再查询另一路DR的状态。当然,如果每路单独使用一个中断源,效果将会更好。
4结束语
实际上,上述AT89C52与DEI1016的接口电路经改进也可以应用到其它16位数据总线接口的电路中,而如果用ISP器件替代锁存器及其门电路,还可大大减小电路板的面积。
篇6:基于串行外设接口(SPI)的CAN总线隔离扩展设计论文
基于串行外设接口(SPI)的CAN总线隔离扩展设计论文
摘要:介绍了利用SPI口实现CAN总线隔离扩展的一种通信控制系统,详细叙述了此通信控制系统中主从通信模块的硬件设计控制,软件设计流程及实现方法。
关键词: CAN总线 SPI口 XINT1中断
一、引言
CAN总线是一种有效支持分布式控制和实时控制的串行数据通信协议,它是一种多主总线,网络上任意一个节点均可以在任意时刻主动地向网络上的其它节点发送信息,而不分主从,节点之间有优先级之分,因而通信方式灵活;CAN可以点对点、一点对多点(成组)及全局广播等几种方式传送和接收数据 ;CAN采用非破坏性位仲裁技术,优先级发送,可以大大节省总线冲突仲裁时间,在重负荷下表现出良好的性能。
CAN上的节点数实际可达110个,通信介质可以是双绞线、同轴电缆或光导纤维,直接通信距离最远可达10km(传输速率为5kbps);最高通信速率可达1Mbps(传输距离为40m)。CAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码,CAN数据链路层采用短帧结构,每一帧为8个字节,易于纠错。可满足通常工业领域中控制命令,工作状态及测试数据的一般要求。同时,8个字节不会占用总线时间过长,从而保证了通信的实时性。
CAN总线具有较强的纠错能力,每帧信息都有CRC校验及其它检错措施,有效地降低了数据的错误率。CAN节点在错误严重的情况下,具有自动关闭的功能,使总线上其它节点不受影响。支持差分收发,因而适合高干扰环境。
我们设计的一种CAN总线主从通信控制系统如图1所示,该控制系统采用内外两层隔离控制形式,主控台向主CAN网络发送指令和数据,通过主从通信模块与从CAN网络中的节点通信,对分系统控制单位进行数据采集和控制。此系统使CAN总线的节点数增加了n倍;CAN总线的传输速率和通信距离大幅度的提高;抗干扰能力也大幅度的增强。
本文讨论的是CAN总线主从通信控制系统中主从通信模块的硬件、软件设计及实现方法。主从通信模块实现了主控台和从控制单元之间CAN网络数据通信的隔离扩展,对通信数据处理、传输和CAN网络控制有一定的借鉴作用。
二、硬件设计
主从通信模块控制原理框图如图2所示,核心芯片是TI公司TMS320C系列的适合于数字控制的一种DSP。它的单个芯片内包含了10位ADC转换器、片内flash程序存储器、事件管理器、数字输入输出I/O口等。为了便于与各种外围设备进行通信,DSP还提供了一些接口:CAN接口、串行外设接口(SPI)、串行通信接口(SCI)等。其中,SPI接口是工业标准的同步串行接口,是一种全双工、三线通信的系统。它允许DSP与各种外围设备以串行方式(可配置成1~16位数据同时、同步地被发送和接收)进行通信。在SPI接口中,数据的传输需要1个时钟信号和两条数据线。SPI可工作在主模式或从模式下。在主模式下,每一位数据的发送/接收需要1次时钟作用;而在从模式下,每一位数据都是在接收到时钟信号之后才发送/接收。
三、SPI的工作原理
1)SPI的信号说明
如图2通信控制部分原理图,两片DSP芯片的SPI使用4条线直接接口:串行时钟线(SPICLK)、主片输入/从片输出数据线SPISOMI、主片输出/从片输入数据线SPISIMO和低电平有效的从片选择线SPISTE。
SPICLK是主片的时钟线,为MISO数据的发送和接收提供同步时钟信号。每一位数据的传输都需要1次时钟作用,因而发送或接收1个字节的`数据需要1~16个时钟的作用。主片的时钟是通过主片的硬件设置的,并和从片的SPICLK相连。
MISO是主片的输入/从片的输出数据线。主片的MISO应与从片的MISO相连进行高位在前的数据交换。MOSI是SPI接口的SPI主片输出/从片输入数据脚。这一引脚应当连接主片的数据输出和从片的数据输入端MOSI,进行高位在前数据的交换。
SPISTE只在从方式中用于低电平选中从片,对应的主片SPISTE脚被配置为I/O口作为从片的SPI片选输入脚。
2)主模式
发送和接收可以同时工作在主模式下。主模式的显著特征是不论是发送还是接收始终有SPICLK信号,发送操作是由向SPIDAT(或SPITXBUF)中写数据而触发的。在主模式下,时钟信号的1次作用对应一位数据的发送(M0SI)和另一位数据的接收(MISO)。如图3所示,在主片中数据从移位寄存器中自左向右发出送到从片(MOSI),同时从片中的数据自右向左发到主片(MISO),经过16位时钟周期完成1个字节的发送。输入字节保留在移位寄存器中,此时SPI INT FLAG位自动置位(如果有中断设置,则产生中断),移位寄存器的数据将被锁存到SPIRXBUF中,此后对SPIRXBUF的读操作将把数据读出。
3)从模式
发送和接收同时工作在从模式下。从模式的显著特征是:不论是发送还是接收始终必须在SPICLK信号作用下进行,并且SPISTE信号必须有效。当SPISTE信号无效时,数据的发送无法进行并且输入的数据视为无效。这是因为输入的时钟信号是与SPICLK的逻辑与操作,而SPICLK信号是SPISTE的反转。这样当SPISTE为高时,就没有时钟信号输入。数据的发送和接收的过程见图3所示,与主模式下基本相似,只是移位寄存器的数据移出和输入方向与之相反。
四、软件设计
SPI通信以一帧CAN报文5个字节为一个传送单元进行信息交换。主片控制着SPICLK信号可在任一时刻启动报文传送;从片在传送报文之前,通过口线向主片发送一个外部中断请求,请求成功后主片输出SPICLK信号来启动从片的报文传送。从片在SPI中断中接收主片传送来的报文;主片在外部中断中完成从片报文的接收。当主片和从片同时都有报文传送时,系统优先传送主片报文,然后再传送从片报文。
1、主片发送,从片接收报文
主片发送报文,从片接收报文软件流程图如图4所示。主片在向从片传送报文前禁止外部中断,也就是禁止从片发送报文。然后从CAN传送缓冲区取一帧报文放入SPI发送暂存器中,再从SPI发送暂存器中取一个字节的数据写到SPITXBUF寄存器中启动SPISIMO引脚上的数据发送,同时,从片响应一个SPI中断开始接收主片发送来的数据,当从片接收到一个字节后,通过口线触发主片的XINT1外部中断来告知主片数据已接收,主片响应了此XINT1外部中断后,再发送下一个字节的数据,当一帧报文传送完成后,主片将外部中断使能,以便接收报文。从片接收完报文后,置报文接收完成标志,以便CPU进行报文的处理。
2、从片发送,主片接收报文
从片发送报文,主片接收报文软件流程图如图5所示。从片在发送报文前,通过口线向主片发送一个XINT1外部中断,请求报文的发送,当主片响应了此中断时,发送一个伪数据(如#0FFFFh)来告知从片可以开始报文的发送,从片测试到报文请求受理标志置位后,再从CAN传送缓冲区取一帧报文放入SPI发送暂存器中,再从SPI发送暂存器中取一个字节的数据写到SPITXBUF寄存器中,通过口线向主片发送XINT1外部中断,请求主片取数据,主片在XINT1中断服务程序中监测到中断标志置位时,发送伪数据#0FFFFh(启动从片数据发送的SPICLK时钟),然后将收到的字节存入SPI接收缓冲区,从片依次将一帧报文传送完成后,清报文受理标志。主片完成一帧报文接收后,置报文接收完成标志,并退出外部中断,以便CPU进行报文的处理。
3、关键技术的处理
CAN总线上信息的传送都是没有规律随机的,所以用SPI口实现主从系统间信息的传递时,必须考虑当有数据正在从DSP1向DSP2传送时,应该禁止数据从DSP2向DSP1传送,反之也然。否则数据在互传过程中就会出错或丢失,影响CPU的正常工作。为了避免主从报文在发送过程中产生冲突,主片在XINT1中断服务程序中完成一帧报文的接收,从片在SPI中断服务程序中完成报文的接收。在进行报文传送时,不管是主片还是从片只有当一帧报文传送完成后,才能进行下一帧报文的传送。主、从片每发送完一个字节的数据,都有一个应答信号返回标志位(见标志位意义)的判断,以便确认数据是否完整的发送或接收。
由于主片掌握着报文传送的时钟信号,即主动权,所以主片随时都可以进行报文的传送。从片在报文传送前,首先要确认主片此时是否传送空闲,若此时主片正在传送报文,从片等待主片将报文传送完成,再进行报文的传送;若主片正处于传送空闲状态,从片可以开始传送报文。
五、结束语
此CAN总线主从通信控制系统外加一些辅助控制单元(如显控单元,操作键盘等)后可作为从CAN网络的主控制器使用,在主控台CAN网络发生异常不能正常工作时,能够辅助控制分系统的运行,此项设计已经在控制系统中得到了应用。
篇7:USB接口技术研究设计论文
USB接口技术研究设计论文
[摘要]USB很好地解决了计算机插槽限制冲突,实现低成本、高可靠性、多点的数据采集。USB接口如今已经成为计算机外设必不可少的设备。本文详细介绍了USB接口设备及其工作原理,并对其在生产实践中的具体应用方法进行了研究。
[关键词]USB;接口;应用与设计
从U盘、鼠标、读卡器、外接光驱等常用USB设备,到采用USB接口的电吹风、咖啡炉、剃须刀、圣诞树等千奇百怪的电脑附件,通过一台电脑的USB周边设备使人们享受到了更多的方便和乐趣。USB之所以能够如此普及并受到大众欢迎,在于它方便的热插拔,带宽大,速度快,可连接设备多,简单的网络互联功能等诸多优点。
一、USB接口技术传输类型及优点
USB是通用串行总线(Universal Serial Bus)的简称。在计算机使用中,常常利用PC或工控机对各种数据进行数据采集。这其中有很多地方需要对各种数据进行采集,如液位、温度、压力、频率等。常用的采集方式是通过数据采集板卡,如A/D卡以及422、485总线板卡等。采用板卡不仅安装麻烦、易受机箱内环境的干扰,而且由于受计算机插槽数量和地址、中断资源的限制,不可能挂接很多设备。而USB接口技术的出现,很好地解决了以上这些冲突,很容易就能实现低成本、高可靠性、多点的数据采集。USB系统主要由主控制器(Host Controller)、USB Hub 和USB外设(Peripherals Node)组成系统拓扑结构。
1.USB的传输类型。USB总线包括4种传输类型(传输管道):(1)控制传输类型:用于传输控制信息。(2)块数据传输类型:用于传输相对比较大的和突发性强的数据,一般用于打印机、扫描仪等。(3)中断数据传输类型:通常用于传输设备反馈回计算机的字符和坐标信息,如鼠标,键盘、游戏杆等。(4)同步数据传输类型:占用预先分配的带宽,实时传输,例如海量储存类、打印机类和HID(人机接口)类等。
2.USB的主要优点。速度快;USB 2.0将设备之间的数据传输速度增加到了480Mbps,比USB 1.1标准快40倍左右,速度的提高对于用户的最大好处就是用户可以使用到更高效的外部设备,而且具有多种速度的周边设备都可以被连接到USB 2.0的线路上,而且无需担心数据传输时发生瓶颈效应。设备安装和配置容易;安装USB设备不必再打开机箱,加减已安装过的设备完全不用关闭计算机。所有USB设备支持热拔插,系统对其进行自动配置,彻底抛弃了过去的跳线和拨码开关设置。易于扩展;通过使用Hub扩展可拨接多达127个外设。标准USB电缆长度为3m(5m低速)。通过Hub或中继器可以使外设距离达到30m。能够采用总线供电;USB总线提供最大达5V电压、500mA电流。使用灵活。USB共有4种传输模式:控制传输(control)、同步传输(Synchronization)、中断传输(interrupt)、批量传输(bulk),以适应不同设备的需要。
二、USB的应用与设计
USB的应用主要是数据采集工作,随着USB应用的日益广泛,Intel、SGS-Tomson、Cypress、Philips等芯片厂商都推出了具备USB通信接口的单片机。这些单片机处理能力强,有的本身就具备多路A/D,构成系统的电路简单,调试方便,电磁兼容性好,因此采用具备USB接口的单片机是构成USB数据采集系统较好的.方案。USB接口开发中有相当大的工作量是关于USB软件的开发,USB软件包括三方面的工作:固件(firmware)设计,驱动程序设计和主机端应用程序的设计。
1、固件设计。固件是运行在USB芯片上的程序,可采用汇编语言或C语言设计,其主要功能是控制USB芯片接收并处理USB驱动程序的请求、控制USB芯片接收应用程序的控制指令、通过USB芯片存放数据并实时上传至PC等。
2、驱动程序设计。在Windows平台下,USB驱动程序由3部分组成:USB设备驱动程序,USB总线驱动程序和USB主控制器驱动程序,他们必须遵循win32驱动程序模型(WDM)。其中,windows操作系统已经提供了处于驱动程序栈底的USB总线驱动程序和USB主控制器驱动程序。而USB设备驱动程序由设备开发者编写,通过向USB总线驱动程序发送包含URB(USB Request Block)的IRP(I/0 Request Packet),来实现USB外设之间的信息交换。当主机应用程序要对USB设备进行I/0操作时,调用Windows API函数对win32子系统进行win32调用,由I/O管理器将此请求构造成一个合适的IRP,并把它传递给USB设备驱动程序。USB设备驱动程序接受到这个IRP后,根据IRP中的包含的具体操作代码,构造响应的URB并把他放到一个新IRP中,然后把此IRP传递到USB总线驱动程序,USB总线驱动程序根据IRP中所包含的URB执行响应的操作,并把操作结果通过IRP返还给USB设备驱动程序。USB设备驱动程序接受到此IRP后,将操作结果通过IRP返还I/O管理器。最后,I/O管理器将此IRP中的操作结果返还给应用程序,至此应用程序对USB设备的一次I/O操作完成。
3、应用程序设计。应用程序工作于用户模式,用户模式可以访问文件,处理数据,人机交互,不过必须借助设备驱动程序来访问硬件。在VC环境下开发的主机端的应用程序,容易实现了设备的打开、关闭、固件下载、端口配置和文件传输等功能。
USB接口技术的应用正处于高速发展阶段。在USB数据采集、USB工业控制等领域已经得到成功的应用。随着时代的进步和技术的发展,USB必将在更广阔的领域得到更深层次的应用。
篇8:一种VXI总线寄存器基接口电路的设计
一种实用的VXI总线寄存器基接口电路的设计
摘要:在介绍VXI总线协议的基础上,通过对器件寻址、端口地址译码、DTB总线仲裁和中断仲裁等几部分工作原理的分析,提出了一种VXI寄存器基接口电路的实现方法,并给出了用可编程逻辑器件实现的过程。该接口电路已在多种VXI寄存器基器件中得到应用。关键词:VXI总线寄存器基地址修改码
VXI(VMEbuseXtentionforInstrumentation)总线是一种完全开放的、适用于各仪器生产厂家成为高性能测试系统集成的首选总线。VXI总线器件主要分为:寄存器基器件、消息基器件和存储器基器件。目前寄存器基器件在应用中所占比例最大(约70%),其实现方法在遵守VME协议的前提下,根据实际需要各有不同。VXI接口电路用于实现器件的地址寻址、总线仲裁、中断仲裁和数据交换等。设计VXI接口首先需明确寻址空间和数据线宽度,VXI器件寻址有A16/A24、A16/A32和A16三种。A16/A24寻址支持16M字节空间,A16/A32寻址支持4G字节空间,A16寻址支持64字节地址空间,但不论哪种寻址方式,A16寻址能力是不可缺的。本文设计的VXI寄存器基接口电路是A16寻址的,支持D8和D16数据线传输,有较宽的使用范围。其接口电路原理框图如图1所示。
1DTB及DTB仲裁
DTB(数据传输总线)及DTB仲裁是VXI接口的核心,DTB主要包括:寻址总线、数据总线和控制总线。其主要任务是:①通过地址修改码(AM)决定寻址空间和数据传输方式。②通过DS0*、DS1*、LWORD*、A1控制数据总线的宽度。③通过总线仲裁决定总线优先使用权。
VXI总线器件在A16(16位地址)寻址时,有64字节的地址空间,其呈部分作为器件配置寄存器地址(已具体指定),其余可用作用户电路端口地址。每个器件的寄存器基地址由器件本身唯一的逻辑地址来确定。地址修改线在DTB周期中允许主模块将附加的器件工作模式信息传递给从模块。地址修改码(AM)共有64种,可分为三类:已定义修改码、保留修改码和用户自定义码。在已定义的地址修改码中又分为三种:①短地址AM码,使用A02~A15地址线;②标准地址AM码,使用A02~A23地址线;③扩展地址AM码,使用A02~A31地址线。A16短地址寻址主要是用来寻址器件I/O端口,其地址修改码为:29H、2DH。
图2为VXI器件寻址电路图,其中U1为可编程逻辑器件,其表达式为:VXIENA*=AS*+!IACK*A14+!A15+!AM5+AM4+!AM3+AM1+!AM0;(!IACK*表示系统无中断请求)。寻址过程为:当VXI主模块发出的地址修改码对应为29或2D、总线上地址A6~A13和逻辑地址设置开关K1的设置相同并且地址允许线AS有效时,图2中的MYVXIENA*有效(为低),表示本器件允许被VXI系统寻址。在允许本器件寻址的基础上(即MYVXIENA*有效),再通过MYVXIENA*、A1~A5、LWORD*、DS0*、DS1*译码生成64字节地址,根据VME总线协议可译出单字节地址和双字节地址。协议协定:当单字节读写时,奇地址DS0*为低、DS1*为高,偶地址DS1*为低、DS0*为高,LWORD*为高;双字节读写时,DS0*和DS1*为低、LWODR*为高;四字节读写时,DS0*、DS1*和LWORD*都为低。
DTB数据传输应答主要依赖DTACK*和DS0*之间的互锁性握手关系,而与数据线上有效数据什么时候出现无关,所以单次读写操作的速度完全决定应答过程。为适应不同速度用户端口读写数据的可靠性,本文采用由用户端口数据准备好线(DATREADY*)去同步DTACK*答应速度的方法来保证数据传输的有效性。该方法的优点是电路简单、使用方便,缺点是占用DTB时间长,影响VXI系统性能,且最长延时时间不得超过20μs。通常情况下用户可通过数据暂存的'方法实现数据可靠传输,并使用户端口数据准备好线(DATREADY*)接地。由于寄存器基器件在VXI系统中只能作为从模块使用,所以其总线请求只有该器件发生中断请求时才由中断管理模块提出。
2中断请求及仲裁电路
VXI系统设有七级中断,优先中断部迟疑不决包括:①中断请求线IRQ1*~IRQ7*;②中断应答线IACK*;③中断应答输入线IACKIN*;④中断应答输出线IACKOUT*。从系统的角度看,在VXI系统中有一个成菊花链的中断查询系统。当VXI系统中有中断请求时,中怕管理器使中断应答信号IACK*有效(置低),并送往菊花链驱动器,菊花链驱动器使输出IACKOUT*有效,送至相邻的下一个器件。如果相邻器件没有中断请求,则该器件的IACKOUT*输出仍为低,继续向下一个相邻器件传送;当此器件有中断请求时,所以其输出IACKOUT*为高,进入中断过程,并屏蔽后级器件的中断应答。
图2
为实现中断请求和中断仲裁,每个器件的中断仲裁电路应完成的功能为:①产生中断请求;②上传状态/识别码;③屏蔽后级中断应答。本文设计的中断仲裁电路如图3所示。其中TX1~TX3来自中断号选择跳线器,INNER-IRQ为器件内部用户电路中断请求信号,上升沿有效。中断请求过程分如下四步:(1)在系统复位或中断复位(来自控制寄存器)后,IRQOPEN*为“1”使比较电路输出“1”,使中断应答菊
花链畅通,且译码电路不工作。(2)当本器件内有中断请求时,使IRQOPEN*为“0”,则译码电路根据中断置位开关的设置输出相应中断请求信号IRQx*。当中断管理器接收中断请求信号后使IACK*有效,并送往中断菊花链驱动器使之输出IACKOUT*有效,同时中断管理器请求DTB总线使用权。(3)当中断管理器获得DTB使用权后,根据接收到的中断请求信号,在地址允许线AS+作用下在地址线上输出相应的A1~A3地址,使比较器输出“0”,从而使IACKOUT*变高,屏蔽后续中断,并清除本器件内部中断请求。(4)中断管理器使数据允许信号DS0*为低,读出器件状态/识别码,响应中断,同时在DS0*的上升沿清除中断请求(使IRQOPEN*为“1”),接通中断应答菊花链,进入中断过程。
3可编程器件实现和调试
为了克服用中小规模集成电路实现VXI接口电路存在的体积大、可靠性差和可调试性差等不足,可采用可编程器件实现接口电路。本文采用的器件是ALTERA公司的MAX系列,采用的器件可编程软件平台的MAX+plusII。MAX+plusII在编程上提供了多种电路描述形式,主要有图形描述、AHDL描述和VHDL描述等。本文采用图形描述和AHDL描述相结合的描述方法。接口电路的主框架结构和能够用标准元件表述的子模块电路用图形描述方法设计,部分功能子模块用AHDL语言描述。这种设计方式的电路原理结构直观、功能描述简洁。VXI接口电路硬件描述子程序模块由地址修改码器件寻址、端口地址译码、中断请求及控制、寄存器配置四部分组成。
在VXI器件中,寄存器配置步骤是必不可少的,VXI寄存器基器件主要配置寄存器有:识别/逻辑地址寄存器、器件类型寄存、状态/控制寄存器。在接口电路的性质特性明确的前提下,寄存器基器件的配置是确定的,所以直接在可编程器件中实现,且更改也很方便。以下列出的是VXI寄存器基接口电路的主要逻辑表达式(用AHDL语言格式):
VXIENA=AS#!IACK#!A14#!A15#!AM5#AM4#!AM3#AM1#!AM0;
MYVXIENA=VXIENA#(A6$Q0)#(A7$Q1)#(A8$Q2)#(A9$Q3)#(A10$Q4)#(A11$Q5)#(A12$Q6)#(A13$Q7);
ACKED=(TX1$A1)#(TX2$A2)#(TX3$A3)#IACK#!SYSRST#!IRQPEND#AS#IACKIN;
DTACKNODE=!(DS0&DS1#MYVXIENA&ACKED);
DRACK=DFF(DTAKNODE,SYSCLK,VCC,VCC);
IOENA=MYVXIENA#DS0&DS0&DS1#!LWORD;
IACKOUT=AS#IACKIN#!ACK;
需要注意的是,在使用中由于部分信号线与VXI背板总线连接时需要采用集电极开路方式接入,如DTACK*、SYSFAIL*、BRx*等,所以应增加一级集电极开路门电路后再与VXI背板总线连接。
接口电路调试有两种方式,一是利用LabWindow/VCI开发工具预先编好一个带操作软面板的调试程序,它包含有各项功能调试控件和相关信息显示窗。在调试电路时只需根据提示在软面板上操作,就可及时得到信息显示。这种调试电路方法方便、直观,但由于调试程序的封装会使得调试细节不透明。另一种形式是在NI公司提供的VXI资源管理器中对端口电路进行操作、调试。这种方法是硬件开发人员主要采用的形式。主要过程为:先打开T&MExplore对VXI系统初始化;启动VXI系统初始化;启动VXIInterActiveControl面板,在BusAccess中通过修改偏移地址(Offset)、输出值(Value)和观察输入值来对接口电路进行调试。在调试过程中,为便于数据或波形的稳定测试、观察,一般将输出数据的循环次数(count)设成一个较大数。这种调试方式虽然不很直观,但却非常灵活,容易发现硬件电路细节不足。
在VXI接口电路设计方面,只要遵循VXI总线协议,其具体实现方法多种多样。本文从VXI总线协议出发详细阐述了一种VXI寄存器基接口电路的设计方法和工作原理,并介绍了可编程器件实现方法和调试方法。用可编程电路使VXI接口电路模块化、格式化,可缩短VXI总线器件的研制周期、缩小器件体积,提高器件的可靠性。该接口电路已在VXI数字I/O、VXI特征分析仪中使用。随着仪器仪表技术、虚拟仪器技术的发展,VXI总线作为高性能测试系统仪器的背板总线,将在航空航天、雷达、通讯等领域的测试中占据越来越重要的地位,开发高性能VXI总线器件是目前较热门的研究方向。
篇9:基于DSP与CPLD的I2C总线接口的设计与实现
基于DSP与CPLD的I2C总线接口的设计与实现
摘要:介绍了一种使用CPLD完成DSP芯片I2C总线接口的设计和实现方案,重点叙述了I2C核的设计思想。关键词:PWMSG3524控制器
带有I2C总线接口的器件可以十分方便地将一个或多个单片机及外围器件组成单片机系统。尽管这种总线结构没有并行总线那样大的吞吐能力,但由于连接线和连接引脚少,因此其构成的系统价格低、器件间总线连接简单、结构紧凑,而且在总线上增加器件不影响系统的正常工作,系统修改和可扩展性好。即使有不同时钟速度的器件连接到总线上,也能很方便地确定总线的时钟。
如今,为了提高系统的数据处理精度和处理速度,在家用电器、通讯设备及各类电子产品中已广泛应用DSP芯片。但大多数的尚未提供I2C总线接口,本文将介绍一种基于CPLD的已实现的高速DSP的I2C总线接口方案。
图1I2C总线接口电路结构
1I2C通信协议
I2C总线是一种用于IC器件之间的二线制总线。它通过SDA(串行数据线)及SCL(串行同步时钟线)两根线在连到总线上的器件之间传送信息,通过软件寻址实现片选,减少了器件片选线的连接。CPU不仅能通过指令将某个功能单元电路挂靠或摘离总线,还可对该单元的工作状况进行检测,从而实现对硬件系统的扩展与控制。I2C总线接口电路结构如图1所示,I2C总线时序图如图2所示。
I2C总线根据器件的功能通过软件程序使其可工作于发送(主)或接收(从)方式。总线上主和从(即发送和接收)的关系不是一成不变的,而是取决于数据传送的方向。SDA和SCL均为双向I/O线,通过上拉电阻接正电源。当总线空闲时,两根线都是高电平。连接总线的器件的输出级必须是集电极或漏极开路的,以具有线“与”功能。I2C总线的数据传送速率在标准工作方式下为100kbit/s,在快速方式下,最高传送速率可达400kbit/s。
在数据传送过程中,必须确认数据传送的开始和结束信号(也称启动和停止信号)。当时钟线SCL为高电平时,数据线SDA由高电平跳变为低电平则定义为“开始”信号;当SCL为高电平时,SDA由低电平跳变为高电平则定义为“结束”信号。开始和结束信号都由主器件产生。在开始信号以后,总线即被认为处于忙状态;在结束信号以后的一段时间内,总线被认为是空闲状态。
在I2C总线开始信号后,依次送出器件地址和数据,I2C总线上每次传送的数据字节数不限,但每一个字节必须为8位,而且每个传送的字节后面必须跟一个认可位(第9位),也叫应答位(ACK)。从器件的响应信号结束后,SDA线返回高电平,进入下一个传送周期。
2设计方案
本文以DSP芯片ADSP21992与时钟芯片PCF8583的控制接口为例,说明基于CPLD的I2C总线接口设计方案。
ADSP21992是2003年最新推出的160MIPS、带CAN通信接口的适合于高精度工业控制和信号处理的高性能DSP芯片。它带有48K片内RAM、SPORT通信接口、SPI通信接口、8通道14位A/D转换器以及PWM等。
PCF8583是一款带有256字节静态CMOSRAM的时钟/日历芯片。地址和数据严格按照双向双线制I2C总线协议传输。内置地址寄存器在每次读/写后自动递增。
2.1系统结构设计
系统的基本功能是通过CPLD的I2C总线接口完成ADSP21992(主控芯片)与PCF8583的数据交换。系统框图如图3所示。
系统主要由两个部分组成:一是DSP与CPLD的接口;另一是I2C核。为了能在DSP指定的时刻读/写PCF8583的数据,使用DSP的读写信号、同步时钟和最高位地址控制数据的传输。最高位地址作为控制信号是因为DSP的I/O口比较少,必须优先供应给其它外设,因此用它来产生DSP提供给I2C核的片选信号。而DSP的地址总线位数较多,最高位一般使用不到,这样正好可以充分利用资源。
2.2I2C核
I2C核原理示意图如图4所示。
整个I2C核由控制模块和I/O模块构成。其中,控制模块包括控制信号发生部分和时钟开关,I/O模块包括数据缓存和同步时钟缓存。
当DSP的最高地址位出现一个有效信号时,便会使I2C核内的触发器产生一个全局使能信号EN?熏它将会启动时钟
、计数器和其它控制信号,但数据不会出现交换。如果此时DSP的读/写同步产生,则会启动相应的读/写进程,进行数据传输。
I2C核的关键技术是:
①用计数器和全局使能信号EN配合触发进程。
由于I2C核的片选信号EN是由触发产生的,不能象电平信号一样由DSP的I/O控制,因此只能通过精确的计数器定时和读/写使能信号共同判别控制。
读/写使能信号WR_EN/RD_EN也象EN那样由触发产生,因此也要用同样的方法判别。
②同步时钟的产生。
从图2中可以看到,数据在同步时钟的高电平脉冲时必须保持稳定,如果此时发生变化将会被视为一个控制信号,而通信也会被中断。因此,同步时钟的高电平脉冲一定要在有效数据的中间出现。而所需的控制信号必须在同步时钟正脉冲的时候出现。
③对数据总线进行三态设置。
因为SDA和DSP_DATA都是双向数据线,在写SDA和DSP_DATA的进程中必须设置高阻态,否则会出现数据线状态“不确定”。
图5I2C核工作时序图
2.3DSP与CPLD的接口模块
根据DSP的时序,DSP与CPLD之间必须根据双方(ADSP21992和PCF8583)的时序制定一个握手协议。当读程序时,由于I2C总线协议只能支持最高400kbit/s的传输速率,而DSP的同步时钟可达几十兆赫。因此,DSP必须等到I2C核把PCF8583的数据读到CPLD后才能获得正确的.数据(这里可以通过设立一个忙标志来实现)。而当写程序时,为了节约CPLD的资源(数据缓存特别占用资源),可以设置DSP定时输出数据给I2C核,让I2C核的一次只送一个数据。
2.4硬件设计
此I2C核可外挂多个带有I2C总线接口的芯片,可以通过发送不同的器件地址来选择。SDA和SCL线必须接上拉电阻。此外,同步时钟不能太高,否则会影响数据传输的稳定性。
2.5时序
(1)I2C核时序
以写为例,I2C核时序如图5所示。
(2)PCF8583时序
PCF8583的数据是8bit一个存储单元,共256个字节,所以只需要8位地址,而且器件本身有两种寻址方式:一种是从指定地址开始递增寻址,另一种是从首地址开始递增寻址。两种寻址方式的时序是不一样的,如图6所示。
图6PCF8583时序图
3实现方法
本系统是选用ALTERA公司CPLD7000S系列EPM7128S芯片,并基于MAXPLUSII开发的。I2C核采用VHDL语言编写,使用SYNPLIFY编译、综合,用AHDL绘成图表,用MAXPLUSII仿真和布局。DSP采用VISUALDSP++2.0编写。最后分别通过JTAG口下载到芯片并联机调试成功。
随着DSP芯片和I2C通信方式的广泛应用,它们之间的接口问题必须得到解决。本文提出的解决方案具有非常好的可移植性和产品开发能力。本系统既可以作为一个单独的系统运行,又可以作为一个通信模块植入一个大系统中,而其中的I2C核又是一个可移植IP核。利用CPLD的逻辑可编程性,还可以在其剩下的资源中再开发所需的逻辑器件,既能降低硬件成本又能大大减小系统主板的面积,使电路的设计更具灵活性。
篇10:基于DSP与CPLD的I2C总线接口的设计与实现
基于DSP与CPLD的I2C总线接口的设计与实现
摘要:介绍了一种使用CPLD完成DSP芯片I2C总线接口的设计和实现方案,重点叙述了I2C核的设计思想。关键词:PWM SG3524 控制器
带有I2C总线接口的器件可以十分方便地将一个或多个单片机及外围器件组成单片机系统。尽管这种总线结构没有并行总线那样大的吞吐能力,但由于连接线和连接引脚少,因此其构成的系统价格低、器件间总线连接简单、结构紧凑,而且在总线上增加器件不影响系统的正常工作,系统修改和可扩展性好。即使有不同时钟速度的器件连接到总线上,也能很方便地确定总线的时钟。
如今,为了提高系统的数据处理精度和处理速度,在家用电器、通讯设备及各类电子产品中已广泛应用DSP芯片。但大多数的尚未提供I2C总线接口,本文将介绍一种基于CPLD的已实现的高速DSP的I2C总线接口方案。
图1 I2C总线接口电路结构
1 I2C通信协议
I2C总线是一种用于IC器件之间的二线制总线。它通过SDA(串行数据线)及SCL(串行同步时钟线)两根线在连到总线上的器件之间传送信息,通过软件寻址实现片选,减少了器件片选线的连接。CPU不仅能通过指令将某个功能单元电路挂靠或摘离总线,还可对该单元的工作状况进行检测,从而实现对硬件系统的扩展与控制。I2C总线接口电路结构如图1所示,I2C总线时序图如图2所示。
I2C总线根据器件的功能通过软件程序使其可工作于发送(主)或接收(从)方式。总线上主和从(即发送和接收)的关系不是一成不变的,而是取决于数据传送的`方向。SDA和SCL均为双向I/O线,通过上拉电阻接正电源。当总线空闲时,两根线都是高电平。连接总线的器件的输出级必须是集电极或漏极开路的,以具有线“与”功能。I2C总线的数据传送速率在标准工作方式下为100kbit/s,在快速方式下,最高传送速率可达400kbit/s。
在数据传送过程中,必须确认数据传送的开始和结束信号(也称启动和停止信号)。当时钟线SCL为高电平时,数据线SDA由高电平跳变为低电平则定义为“开始”信号;当SCL为高电平时,SDA由低电平跳变为高电平则定义为“结束”信号。开始和结束信号都由主器件产生。在开始信号以后, 总线即被认为处于忙状态;在结束信号以后的一段时间内,总线被认为是空闲状态。
在I2C总线开始信号后,依次送出器件地址和数据,I2C总线上每次传送的数据字节数不限,但每一个字节必须为8位,而且每个传送的字节后面必须跟一个认可位(第9位),也叫应答位(ACK)。从器件的响应信号结束后,SDA线返回高电平,进入下一个传送周期。
2 设计方案
本文以DSP芯片ADSP21992与时钟芯片PCF8583的控制接口为例,说明基于CPLD的I2C总线接口设计方案。
ADSP21992是2003年最新推出的160MIPS、带CAN通信接口的适合于高精度工业控制和信号处理的高性能DSP芯片。它带有48K片内RAM、SPORT通信接口、SPI通信接口、8通道14位A/D转换器以及PWM等。
PCF8583是一款带有256字节静态CM
[1] [2] [3]
篇11:一种VXI总线寄存器基接口电路的设计
一种实用的VXI总线寄存器基接口电路的设计
摘要:在介绍VXI总线协议的基础上,通过对器件寻址、端口地址译码、DTB总线仲裁和中断仲裁等几部分工作原理的分析,提出了一种VXI寄存器基接口电路的实现方法,并给出了用可编程逻辑器件实现的过程。该接口电路已在多种VXI寄存器基器件中得到应用。关键词:VXI总线 寄存器基 地址修改码
VXI(VMEbus eXtention for Instrumentation)总线是一种完全开放的、适用于各仪器生产厂家成为高性能测试系统集成的首选总线。VXI总线器件主要分为:寄存器基器件、消息基器件和存储器基器件。目前寄存器基器件在应用中所占比例最大(约70%),其实现方法在遵守VME协议的前提下,根据实际需要各有不同。VXI接口电路用于实现器件的地址寻址、总线仲裁、中断仲裁和数据交换等。设计VXI接口首先需明确寻址空间和数据线宽度,VXI器件寻址有A16/A24、A16/A32和A16三种。A16/A24寻址支持16M字节空间,A16/A32寻址支持4G字节空间,A16寻址支持64字节地址空间,但不论哪种寻址方式,A16寻址能力是不可缺的。本文设计的VXI寄存器基接口电路是A16寻址的,支持D8和D16数据线传输,有较宽的使用范围。其接口电路原理框图如图1所示。
1 DTB及DTB仲裁
DTB(数据传输总线)及DTB仲裁是VXI接口的核心,DTB主要包括:寻址总线、数据总线和控制总线。其主要任务是:①通过地址修改码(AM)决定寻址空间和数据传输方式。②通过DS0*、DS1*、LWORD*、A1控制数据总线的宽度。③通过总线仲裁决定总线优先使用权。
VXI总线器件在A16(16位地址)寻址时,有64字节的地址空间,其呈部分作为器件配置寄存器地址(已具体指定),其余可用作用户电路端口地址。每个器件的寄存器基地址由器件本身唯一的逻辑地址来确定。地址修改线在DTB周期中允许主模块将附加的器件工作模式信息传递给从模块。地址修改码(AM)共有64种,可分为三类:已定义修改码、保留修改码和用户自定义码。在已定义的地址修改码中又分为三种:①短地址AM码,使用A02~A15地址线;②标准地址AM码,使用A02~A23地址线;③扩展地址AM码,使用A02~A31地址线。A16短地址寻址主要是用来寻址器件I/O端口,其地址修改码为:29H、2DH。
图2为VXI器件寻址电路图,其中U1为可编程逻辑器件,其表达式为:VXIENA*=AS*+!IACK*A14+!A15+!AM5+AM4+!AM3+AM1+!AM0;(!IACK*表示系统无中断请求)。寻址过程为:当VXI主模块发出的地址修改码对应为29或2D、总线上地址A6~A13和逻辑地址设置开关K1的设置相同并且地址允许线AS有效时,图2中的MYVXIENA*有效(为低),表示本器件允许被VXI系统寻址。在允许本器件寻址的基础上(即MYVXIENA*有效),再通过MYVXIENA*、A1~A5、LWORD*、DS0*、DS1*译码生成64字节地址,根据VME总线协议可译出单字节地址和双字节地址。协议协定:当单字节读写时,奇地址DS0*为低、DS1*为高,偶地址DS1*为低、DS0*为高,LWORD*为高;双字节读写时,DS0*和DS1*为低、LWODR*为高;四字节读写时,DS0*、DS1*和LWORD*都为低。
DTB数据传输应答主要依赖DTACK*和DS0*之间的互锁性握手关系,而与数据线上有效数据什么时候出现无关,所以单次读写操作的速度完全决定应答过程。为适应不同速度用户端口读写数据的可靠性,本文采用由用户端口数据准备好线(DATREADY*)
[1] [2] [3] [4]
篇12:基于PCI总线的多路数据总线接口设计与实现
基于PCI总线的多路数据总线接口设计与实现
提出了一种主处理机可以直接控制的1553B总线接口模块的设计与实现方案,并简要介绍了其硬件结构、工作过程和软件开发.利用PCI协议芯片实现PCI局部总线与军用1553B总线的.桥接,采用WDM技术编写驱动程序.所设计的总线接口模块符合MIL-STD-1553B总线标准,具有结构简单、成本低廉、操作方便等特点,可用于仿真,开发1553B总线产品.
作 者:张伟 吴勇 ZHANG Wei WU Yong 作者单位:西北工业大学,陕西,西安,710072 刊 名:火力与指挥控制 ISTIC PKU英文刊名:FIRE CONTROL AND COMMAND CONTROL 年,卷(期): 32(1) 分类号:V247.1 V247.1+9 关键词:1553B 总线接口 开放式体系结构篇13:基于DSP和FPGA的ARINC429机载总线接口板的硬件设计
基于DSP和FPGA的ARINC429机载总线接口板的硬件设计
摘要:介绍了民用飞机机载数据总线ARINC429的硬件接口板,该接口板采用DSP和FPGA实现四种ARINC429信号收发通道,使整个系统的处理速度大大提高。关键词:ARINC429总线 DSP FPGA
机载数据总线ARINC429在当代的运输机和相当数量的民航客机(如A310、A300、A600、B757、B767)中有着广泛的应用。目前国内对ARINC429总线接口板的设计一般都是基于HARRIS公司的HS3282芯片完成的,它的缺点是路数有限、非常不灵活。因此对ARINC429总线接口板的研制,实现多通道ARINC429总线数据的接收和发送,成为目前对飞机载总线接口研究的重点,具有非常重要的现实意义和应用前景。
1 ARINC429总线简介
在现代民用飞机上,系统与系统之间、系统与部件之间需要传输大量信息。ARINC规范就是为了在航空电子设备之间传输数字数据信息而制定的一个航空运输的工业标准。
(本网网收集整理)
ARINC429(以下简称429)总线采用双绞屏蔽线传输信息,通过一对双绞线反相传输,具有很强的抗干扰能力。而调制方式则采用双极归零制的三态码方式,即信息由“高”、“零”和“低”状态组成的三电平状态调制。429电缆上的'信号及经电平转换后的信号如图1所示。429总线每一个字为32位,它的字同步是以传输周期至少4位的时间间隔也就是4位码字为基准的。
2 系统总体方案
429总线接口板的主要功能是在429信号及相关外设之间起到桥梁作用,它既能接收双极归零制的429信号并将其转换为数字信号送入计算机或其它设备,又可将计算机或其它设备发出的数字信号转换为429信号输出。本文介绍的总线接口板采用FPGA和DSP实现四路429信号接收通道和四路429信号发送通道,且每路通道之间相互独立。在这个接口板中,每两个数据字之间的时间间隔可调,每一个收发通道能单独定义字间隔长度,每个通道校验方式可单独定义为奇校验或偶校验,数据发送可以选择单帧发送或自动自复发送(重复发送某一帧)。
整个接口板由调制电路、解调电路、FPGA、DSP和双口RAM组成,如图2所示。
3 硬件电路设计
3.1 调制解调电路设计
429信号进入接口板后,首先要把429信号转换为数字电路可以识别的TTL电平。这里采用HOLT公司的HI-8482实现信号的解调,将标准的429总线信号转换成5V TTL数字信号。为了降低干扰,在429总线信号的四个输入管脚分别接入39pF高精度军品电容;采用HOLT公司的HI-8585芯片实现信号的调制,将TTL数字电平转换为标准的429信号。
3.2 FPGA内部逻辑设计
按照429信号的编码格式、特点、传输规则以及协议要求,选用一片ALTERA公司的ACEX1K型的FPGA发送和接收四路数据。每一路分为接收部分和发送部分。
图3
接收部分的主要作用是通过串/并转换将串行数据转换为32位并行数据,并对收到的数据自动实时差错控制。对于字间隔、位间隔出错等错误能进行自动检测,若无错误,则将数据分两次送至DSP的16位数据总线上,以供读取。接收模块结构框图如图3所示。
发送送的主要功能是将DSP送入的数据暂存在FPGA内部的FIFO中,等待发送命令。一旦接收发送控制指令,FIFO输出数据并通过并/串转换将并行数据转换为串行数据,同时加入预先设定的间隔。用户可通过写控制寄存器选择发送模式(即单帧发送或自动重复发送)、发送通道延迟设定、发送通道字间隔设定,还可通过读取状态位检查它的工作状态(发送缓冲器空、发送缓冲器满和是否正在发送)。发送模块结构框图如图4所示。
以上介绍的只是一路发送通道和接收通道,由于本系统共有四种独立的发送通道和四路独立的接收通道,故在FPGA中需设置四个接收模块和四个发送模块,通过DSP的地址线来选取其中的一路发送通道或接收通道。
&nb
sp; FPGA内部结构是基于SRAM的,因此需要一片配置芯片固化内部逻辑。为了便于调试,采用JTAG模式和被动串行模式(PS)两种配置模式,调试时使用JTAG模式直接将逻辑写入FPGA内部,调试好后再用PS模式将程序写入配置芯片。通过对FPGA和配置芯片上的引脚进行跳线,可选择不同的配置方式。跳线电路如图5所示。
FPGA作为DSP的一个I/O外设,必须要对它的寄存器地址统一编址。在此将FPGA编址在DSP的I/O空间。由于FPGA的接收通道和发送通道的数据寄存器可以占用一个地址。
3.3 DSP与FPGA及外部设置的通信
在整个系统的设计中,DSP主要用于控制FPGA工作、数据中转、与外设主机通信。DSP是整个系统的中枢,控制各个部分协调工作。利用DSP向FPGA写控制字,其中包含帧间隔长度大小等信息,可对FPGA进行控制;另外,根据FPGA的反馈状态,可倒入出相应的控制调整。考虑到用于控制FPGA的I/O口比较多,选用的DSP是TI公司的TMSLF2407A。TMSLF2407A的复用外围I/O口多达39个,图6是DSP与FPGA之间的具体连接。
DSP提供I/O操作信号/IS、读写选定信号R/W、读使能信号/RD、写使能信号/WE以及地址线低四位A0、A1、A2、A3。通过这些控制逻辑信号可区分四路通道及每路通道的高低字。
DSP与FPGA提供的其它辅助的控制和状态信号还包括:四路发送使能信号/ENTX[0..3],低电平有效;四路发送停止信号/TXT[0..3],低电平有效;四路接收通道清零信号/CHACLRN[0..3],低电平有效;接收数据到达信号/RER[0..3],用于告知DSP准备接收某一路通道已经到达的数据;发送数据准备好信号/TXR[0..3]信号,用于告知各个发送通道中是否还有未发出的数据暂存在FIFO里,低电平表示没有数据;发送通道FIFO满信号FUL[0..3],高电平有效;CLOBCLRN信号,用于FPGA初始化时对其内部进行全部清零;TESTREQ信号,用于对整个系统的自检。
整个电路板是通过双口RAM与外设主机进行通信的,双口RAM负责暂存外设要发送的数据和暂存FPGA处理过的数据。可把它大致分为8个区,每一个区负责存放四路接收通道和四路发送通道中的一路数据及控制字。利用双口RAM左右两中断的信箱可指挥接口板进行相应的操作。
4 软件设计
软件的设计主要是DSP编程,DSP程序的主要任务就是初始化、管理DSP外围电路、控制FPGA的收发数据以及与外设交互。DSP的主程序流程图如图7所示。
图7
整个接口电路板调试通过后,经过测试可以同时接收和发送四路ARINC429信号。这就解决了以后接口电路板通道数太少的瓶颈。利用FPGA密度高、结构灵活、设计时间短和可编程的优点,实现了对某路ARINC429信号的独立处理,再加上TI公司2000系列DSP丰富的I/O接口和较普通单片机更快的速度,实现了对FPGA的控制管理及与外设的通信。因此本系统对当今民用飞机机载数据通信总线互联提供了一些新型、先进的方法,具有相当普遍的实用意义。
★ 基于80C196单片机的某红外预警设备控制系统的设计与实现
★ 电子数字签名
【基于FPGA 的VME自定义总线接口设计论文(通用13篇)】相关文章:
数字签名2023-10-16
系统集成年终工作总结2022-09-15
嵌入式系统的实习报告2023-08-04
AT89C控制LMX2332的频率合成器2022-05-08
基于PLC的水泥灌浆机自动控制系统设计与实现论文2023-07-14
嵌入式实习总结2023-02-11
一个工程师的个人工作经历总结(edacn)2022-05-08
初探实验教学平台的研究论文2022-05-21
太阳热水器设计分析的论文2023-11-29
探析运动控制新技术论文2022-09-19