版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PC104总线与DSP数据通信接口设计2011/8/19来源:21ic作者:佚名DSP技术已在航空航天、遥测遥感、生物医学、自动控制、振动工程、通讯雷达、水文科学等许多领域有着十分广泛的应用。通过数据采集系统将原始数据传送到DSP,DSP完成算法的处理是工程上的一种应用模式,数据的传送可以通过各种计算机总线来实现。本文说明PC104总线与DSP的数据通讯接口设计,也可以作为采用其他计算机总线与DSP进行16位数据通讯接口设计的参考。1 引言 从1982年世界上诞生了首枚DSP芯片后,经过20多年的发展,现在的DSP属于第五代DSP器件。其系统集成度更高,已将DSP芯核及外围器件综合集成到单一芯
2、片上,DSP逐渐成为数字信号处理器的代名词。同时,数字信号处理技术在理论和算法上也取得了突破性进展,他本身也形成了比较完善的理论体系,包括数据采集、离散信号与离散系统分析、信号估计、信号建模、信号处理算法等内容。DSP技术已在航空航天、遥测遥感、生物医学、自动控制、振动工程、通讯雷达、水文科学等许多领域有着十分广泛的应用。通过数据采集系统将原始数据传送到DSP,DSP完成算法的处理是工程上的一种应用模式,数据的传送可以通过各种计算机总线来实现。 PC104是一种专门为嵌入式控制而定义的工业控制总线,PC104与普通PC总线控制系统的主要区别是: (1)小尺寸结构。 (2)堆栈式连接。 (3)轻
3、松总线驱动。 PC104有2个版本,8位和16位,分别与PC和PC/AT相对应。PC104 PLUS则与PCI总线相对应。本文主要涉及的是PC104与DSP的16位数据通信接口设计,采用了CYPRESS公司的双端口静态读写存储器CY7C028V15AC作为共享存储器,双端口RAM右侧接ADI公司的DSP芯片T S101,左侧接PC104总线,控制逻辑用ALTERA公司ACEX系列CPLD中的EP1K100TC208来实现。2 双端口RAM访问模式 CY7C028V15AC是16 b64 k的双端口RAM,支持高速的访问,访问速度为20 ns,支持左右2个端口完全异步访问。2个端口的选通信号有效
4、,则双端口RAM两侧可以同时对双端口RAM进行读写操作。需要解决的是当同时访问到一个存贮块时的冲突问题。有2种方法可以解决访问冲突:一种是信号令牌传递方式,双端口RAM内部提供了8个Semaphore锁存单元,可以在逻辑上把双端口RAM划分为8个区段;当某个端口要访问某个区块时,首先向相应的锁存单元请求令牌,以确定访问是否会产生冲突,即向某一个锁存单元写“0”,然后读回所写数据,如果成功,则对应于该锁存单元的块是空闲的,可以访问,否则就不能访问。当一侧正在访问双端口RAM的某一块,则相应的锁存单元对另一侧是不能访问的。申请令牌通过读写I/O的方式实现,实际用到的是双端口RAM左右两侧数据总线的
5、D0位,地址总线的A2A0位(其译码对应于8个锁存单元),以及左右两侧对锁存单元访问的使能控制端SEML和SEMR。另一种方式是中断方式。在中断方式下,RAM最高的两个地址作为通讯邮箱,FFFEH分配给右端口,FFFFH分配给左端口。两个邮箱的使用方法一致。以右端口为例,当DSP向FFFEH地址写任意一个值时,左端口的中断请求信号INTL有效,当响应完中断请求后,PC104总线读一次FFFEH地址就可以INTL清除中断。 本文中采用中断方式设计PC104与DSP的握手信号。考虑到用CPLD来设计数字逻辑的灵活性和可重复编程,用CPLD来控制中断请求与响应信号,所以RAM最高端的两个地址仍作为普
6、通的R AM单元使用。双端口RAM左右端口的连接如图1所示。图1 双端口RAM左右端口连接图 当DSP向PC104请求数据,TS101的标志位FLAG0通过CPLD的缓冲连接到PC104的其中一条中断信号引脚,当PC104收到中断请求向RAM写完数据,通过写I/O口的方式,由CPLD产生回复信号到TS101的IRQ0,TS101在适当的时间读取数据并进行算法处理。当TS101向PC104发送数据,则先向RAM中写数据,写完后由标志位FLAG1产生读数据请求信号,通过CPLD缓冲连接到PC10 4的另一条中断信号引脚,PC104响应中断读完数据,通过写I/O口的方式由CPLD产生回复信号到TS1
7、01的IRQ1。当PC104访问双端口RAM时。数据总线的16位通过CPLD缓冲连接到RAM左端口的I/O15LI/O0L,因为16位的数据访问占用的是偶地址,所以地址总线的A16A1在CPLD缓冲后连接到RAM的左端口的A15LA0L地址线。PC104其余的地址线通过在CPLD里的译码产生RAM左端口的选通信号。当TS101访问RAM,TS101的前16根地址线连接到RAM的A15RA0R,前16根数据线连接到RAM右端口的I/O15RI/O0R,用产生选通信号,通过TS 101的编程实现,访问RAM的有效地址由用户定义。3 PC104与CPLD的连接关系 通过CPLD,PC104要实现对双
8、端口RAM的访问,首先要考虑的是分配给RAM的存储地址,因为64 k16 b的RAM需要64 k的偶地址空间,或者说128 k的连续地址空间,工控机1 M以内可由用户使用的自由地址空间往往达不到128 k。所以应将RAM安排在1 M地址空间以外访问。此时除了用到用于1 M寻址的地址线SA19SA0,还要采用1 M外寻址的地址线LA23LA17。需要注意的是,PC104的总线上的SA19SA17与LA19LA17是重复的。区别在于SA10SA0是通过总线地址锁存使能信号BALE锁存输出,而LA19LA17未经锁存,为保证在对RAM访问期内地址信号一直有效,至少应在CPLD内将LA23LA20进行
9、BALE锁存。本文中将RAM的地址安排在1 M地址空间外从100000 H开始的64 K偶地址。所有需要用到的PC104信号线都连接到CPLD,CPLD将SA16SA1缓冲连接到RAM,其余地址线译码产生RAM左端口选通信号。PC104与CPLD连接的访问逻辑如图2所示。图2 PC104与CPLD链接访问逻辑图 其中有效表示数据总线的高8位有效,SA0有效表示数据总线的低8位有效,作为译码信号的一部分,对于单片16位数据线的集成电路,实际上也可以不连接,用SA0和高端地址线译码产生选片信号。AEN信号有效表示计算机在和某个设备进行DMA传送,其他的设备发现AEN信号有效,就不要响应寻址信号。因
10、此在CPLD内部逻辑里设置当AEN信号有效时,将进入CPLD的地址信号线置为高阻态。 是存储器读写信号,是用于1 M以外地址空间的读写信号,当这两个信号之一有效且寻址到1 M内的地址,将分别使1 M以内地址的读写 一起控制总线周期的长短。有3种存储器访问周期:标准周期,就绪周期,无等待状态周期。访问时序如图3所示。图3 3种访问周期的访问时序图 在设计的时候考虑到信号在CPLD里的延时,如果标准周期对于访问的时间长度不够,可以采 用有1个等待状态的就绪周期,而这只需要修改CPLD的设计并重新下载到CPLD即可,由此可 见用CPLD作为控制芯片的优点。4 结语 本文说明的这种PC104总线与DS
11、P的数据通讯接口设计,也可以作为采用其他计算机总线与DS P进行16位数据通讯接口设计的参考。基于CPLD的PC104系统与CAN总线网络通信设计作者:时间:2014-07-11来源:网络英特尔Quark开发者俱乐部是Quark处理器在国内最重要的技术交流平台与资源中心,有第一手的技术资料以及最丰富的Quark开发案例,英特尔技术人员坐镇答疑解惑。1.引言本文引用地址:可编程逻辑器件PLD(Programmable logic Device)就是由用户进行编程实现所需逻辑功能的数字专用集成电路ASIC。可编程逻辑器件在现代电子工程设计中得到了广泛应用。它是在 PAL,GAL等逻辑器件的基础上发
12、展起来的,具有高密度,高速度,低功耗体系结构和逻辑单元,灵活以及运用范围宽等特点,同时还具有设计周期短,制造成本低,开发工具先进,标准产品无需测试,质量稳定及可实时布线检验等优点。现场总线技术广泛应用于工业和军用测控局域网中,它可以实现较远距离、较快速度的信息传输,而且只需要双绞线作为传输媒介,简单可靠。但是,在该技术应用中总线控制器与微机之间的接口电路一般采用单片机来实现。采用这种方式将导致较长的研发周期和庞大的电路,且难于实现高速数据传输。本文利用CPLD成功地实现了嵌入式系统与CAN总线网络的通信,速度快,易于实现,而且非常稳定。本系统采用的器件是Altera公司的CPLD,属于MAX7
13、000系列。Altera公司的CPLD器件主要包括MAX系列、ACEX系列、FLEX系列和APEX系列。其中MAX系列器件为高速实际应用提供了非常高的性价比,这基于它先进的MAX架构。MAX7000系列提供了速度最快的可编程逻辑器件解决方案,它基于CMOS EEPROM工艺,传播延迟最小为3.5ns。2.CPLD实现接口电路实时控制系统中,测控局域网利用CAN控制器实现微机间的数据传输。其基本的设计思想是:由于PC总线协议与 CAN控制器不一致,因而在它们中间设计了一个硬件电路作为接口来实现转换。PC地址与数据总线是分离的,而CAN控制器数据与地址线通过分时复用来实现地址与数据分离,刚好与单片
14、机一致。单片机技术虽然较成熟,但是,由于涉及单片机编程和开发的周期较长,且采用单片机系统需要较庞大的外围电路,不利于研制系统应用于嵌入式系统中。因此,用可编程逻辑器件设计接口电路,可以有效解决这些问题。本系统采用“主-从”式点对点通信。系统硬件由两台PC104主机和两块CAN总线通信模块组成,如图1所示。主机采用CPU主频为300MHz的奔腾处理器;CAN总线控制器位SJA1000T;一带屏蔽的双绞线作为系统总线;通信波特率可用软件设置为 1Mbps;为了提高通信的可靠性,用CAN控制器的报文筛选器对报文进行筛选,来对由于干扰而产生的错误报文进行滤波。图1 系统硬件组成本系统主要是利用主机PC
15、(PC104)采集多个下位机从被控对象得到的数据,并进行实时控制和综合调度,其原理框图如图2所示。图2 原理框图其中CPLD完成从CAN控制器到PC总线的数据转换。CAN控制器负责从总线上采集数据。总线驱动部分由89C250完成总线驱动;光电隔离器完成CAN控制器与传输电缆的信号隔离,防止电缆上的非规则信号对CAN控制器产生干扰。3.MAX+PLUS程序设计Altera公司的MAX+PLUS 是一个高效实用的工具。直接采用原理图输入方式,进行编译后写入器件中;同时可在线更改写入内容,修改和调试简单易行。利用MAX+PLUS 可以对输入输出关系进行在线调试和仿真,开发和调试周期短而高效。MAX+
16、PLUS的软件设计的流程包括设计输入、功能仿真、编译、后仿真、编程验证几个部分。本文所论述的系统已经实现并进行通信测试,在最高通信速度、通信距离、热冗余和冷冗余实验等测试中都取得了良好的表现。这里仅论述逻辑设计输入和功能仿真。CPLD主要用于实现PC接口板的地址选择比较器和CAN控制器到PC总线的数据转换,其设计输入如图3所示。图3 设计输入其中compare完成选址功能,MUX28完成总线转换。4.仿真实验为简明起见,这里仅给出核心的部分时序仿真图形,如图4所示。图4 核心的部分时序仿真图形由仿真波形可知,在PC总线的读写操作进行时,地址和数据很好的实现了转换,读写的周期完整,触发迅速,保证
17、转换的准确和迅速,满足了设计的要求。5.结论可编程逻辑器件的应用已经成为现代电子电路设计中的高效方式,它可以实现高效率、可靠的设计,也可以进一步提高电路的集成度;使用它设计的CAN通信卡可以作为通信接口而满足嵌入式系统的要求。同时,基于PC104系统的CAN通信的通信效率较高,具有较强的实时性,可以满足工业现场高速通信的需要,也可为复杂控制系统实现实时控制提供强有力的工具。基于VxWorks的双端口网卡智能双冗余驱动作者:时间:2013-10-26来源:网络英特尔Quark开发者俱乐部是Quark处理器在国内最重要的技术交流平台与资源中心,有第一手的技术资料以及最丰富的Quark开发案例,英特
18、尔技术人员坐镇答疑解惑。随着网络技术的成熟,具有价格低廉、连接方便等优点的以太网已成为各种控制系统接口互连的主要媒介。它作为一种通用网络数据通信系统,在全球计算机网络领域已经得到了广泛的应用。随着现代舰船信息化程度的不断提高,以太网技术也开始应用于现代舰船信息系统中,不但要求信息传输速度快,抗干扰能力强,还要求网络具有高稳定性和高可靠性,在网络局部故障或受损时,全系统不至于瘫痪失效。冗余设计作为一种提高系统可靠性的有效方法,已经得到了广泛的应用。对于网络系统中的单个节点,常常需要对网卡进行双冗余备份,即每个节点都采用两个网络接口,中间用两个集线器或交换机互连,当正常通信的网卡或线路出现故障时该
19、节点能自动地切换到备份网卡进行通信。目前大多数操作系统(如Windows、Unix、Linux等)都支持多网卡,但均非冗余设计,每块网卡都有独立的物理地址和IP地址,以独立的形式供应用系统使用。要实现真正的智能双冗余网络系统,必须自行设计专用的网络驱动程序,以透明的形式提交高层应用系统使用,使系统感觉不到双网卡的存在。本文使用盛博公司PC104结构SCM/DETH型10M双端口以太网卡,设计实现了基于VxWorks的智能双冗余网络驱动。1VxWorks系统网络驱动原理1.1VxWorks系统简介VxWorks操作系统是美国风河公司(Wind River System)推出的一款运行在目标机上的
20、高性能、可裁减的嵌入式强实时操作系统。操作系统包括了进程管理、存储管理、设备管理、文件系统管理、网络协议及系统应用等几个部分,只占用了很小的存储空间,并可高度裁减,保证了系统能以较高的效率运行。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中。VxWorks主要有以下特点:(1)具有高度可剪裁的操作系统微内核Wind;(2)具有比较优秀的网络处理能力,适用于多种物理介质的TCP/IP协议族支持;(3)具有极其丰富的BSP,支持多处理器系统,最多可以支持20个CPU;(4)具有友好的开发调试环境,便于操作、配置和应用程序的开发调试;(5)具
21、有较好的兼容性,支持POSIX1003.1b;(6)支持多种开发和运行环境。支持C语言、C+语言以及JAVA虚拟机。1.2 VxWorks系统网络驱动原理VxWorks中支持两种类型的网络设备驱动程序BSD4.3网络驱动程序和可裁减的增强型网络堆栈SENS(Scalable Enhanced Networks Stack)。BSD4.3标准提供了网络设备驱动程序与IP协议的紧密结合,而SENS协议栈提供了可替换的网络设备驱动程序,即增强型网络驱动程序END(Enhanced Networks Driver)。SENS模型包含三个部分:协议驱动程序、多元接口层(MUX)和END型网络驱动。它独立
22、于硬件设备接口,将网络设备驱动程序细化,使开发者可以专注于驱动程序(END驱动)本身的开发。本文设计实现的智能双冗余驱动即是一个符合SENS模型标准的END型网络驱动。在END型网络驱动中主要实现网卡设备的装载,网络芯片的初始化,网络报文接收及发送等功能。在系统启动后,操作系统通过网卡加载函数调用到END型网络驱动,在加载过程中完成网络芯片的初始化、内存池的分配、网卡设备控制结构的填写等操作,最后通过指针传递的方式将网卡设备控制结构和13个网卡操纵函数提交给MUX层,供上层系统操作网卡工作时使用。2 智能双冗余驱动程序实现2.1 智能双冗余驱动实现原理智能双冗余驱动的实现原理如图1所示,虚线框
23、内为智能双冗余驱动。在VxWorks系统启动时,首先要遍历配置文件confignet.h中的网卡设备表endDevTbl ,设备表中包含双端口网卡上两个网卡的地址及中断等配置参数;然后,系统会调用sysDethEnd.c中的sysDethEndLoad()函数,将两个网卡的配置参数以函数入口参数的形式传递给智能双冗余驱动的装载函数dethEndLoad();装载函数为每个网卡设备创建一个控制结构,对入口配置参数进行解析,并为每个网卡设备分配一块内存空间,用系统的配置要求初始化两个网卡,同时填写好网卡设备的控制结构;最后,智能双冗余驱动将主通道网卡设备的控制结构指针提交给MUX层,并发起网络故障
24、诊断定时器任务和网络故障诊断任务。网络故障诊断定时器任务配合网络故障诊断任务执行,使用看门狗定时器Watchdog timer完成1ms定时,每定时1次释放1次二进制信号量sem_netDiagnose;网络故障诊断任务循环等待接收信号量sem_netDiagnose,取到信号量后立即判断主通道网卡设备的端口状态(连接/非连接),当端口处于连接状态时,任务循环等待下次信号量,当端口处于非连接状态时,网络故障诊断任务交换主通道与备用通道的控制结构内容,备用通道网卡设备变为主通道网卡设备开始工作,但对于上层应用来说,网卡的控制结构并没有改变。2.2 网卡设备控制结构在智能双冗余网卡驱动中使用一个控
25、制数据结构控制一块网卡设备,控制结构中包含网卡的中断向量、I/O基址、总线类型、介质类型、物理地址等特性信息。这些信息有的在网卡设备表endDevTbl 中,在系统启动过程中作为驱动装载函数的参数传递到驱动中;有的保存在网卡的PROM中,在网卡驱动程序初始化时,将这些特性参数写入网卡控制结构。智能双冗余网卡驱动中定义了一个控制单网卡设备的控制结构,如下所示:typedef struct ne2000_deviceintunit;/*网卡单元号*/intilevel;/*中断优先级*/intbyteAccess;/*字节存储模式*/ULONGbase;/*基地址*/intoffset;/*内存对
26、齐偏移量*/volatile ULONGimask;/*中断屏蔽码*/UCHARenetAddr6;/*网卡物理地址*/ DETHEND_DEVICE;驱动中创建了两个网卡设备控制结构分别控制两块网卡。上层应用通过操作网卡控制结构从而实现对网卡的各种操作。2.3 网络通信故障诊断方法要实现网络端口的智能切换,实现网卡间冗余备份的功能,首要前提就是需要诊断出当前工作的网卡是否网络通信故障。任何一种网络芯片都提供连接状态自动诊断功能,通过在网络芯片的某个寄存器的相应位置0或置1来表示该网卡连接正常还是连接错误。它所检测的依据是网卡是否连通,也就是从本机网络端口到网线另一端的网络端口整个通路是否连通
27、,它能检测出网线断开、网络接口松动及故障等错误。本文使用的SEM/DETH双端口以太网卡采用两块RTL8019AS网络芯片,该网络芯片的寄存器组采用分页存储方式,共分为4页,都映射到16个I/O地址空间上。其中,第3页CONFIG0寄存器的B2位表示网卡连接状态自动诊断结果,当该位为1时表示连接错误,为0时表示连接正常。智能双冗余驱动的网络故障诊断任务判断网卡连接状态的代码如下:setting=sysInByte(pDrvCtrl-base); /*读取命令寄存器状态*/sysOutByte(pDrvCtrl-base,(0xc0|setting);/*选择第3页寄存器组*/if(sysInB
28、yte(pDrvCtrl-base+CONFIG0_REG) 0x04)/*网络连接错误*/ 2.4 单物理地址实现要使两块网卡实现智能双冗余备份,它们必须有相同的物理地址和IP地址。否则,当由其中一个网卡切换到另一个网卡上时,如果IP地址发生变化,系统将无法正常接收、发送数据;如果IP地址不发生变化而仅仅物理地址发生变化,虽然网卡切换后,系统仍可以正常接收、发送数据,但由于物理地址发生变化,将引起协议栈中ARP绑定表的变化,重新对应ARP绑定表中IP地址与网卡物理地址的关系,则延长了两个网卡之间的切换时间。系统的IP地址存在于系统的网络协议栈中,在系统启动后与网卡进行绑定。由于本文设计实现的
29、智能双冗余驱动对于应用系统和协议栈来说呈现单网卡的特征,网卡之间的切换只在驱动程序中完成,所以,当发生网卡切换时,系统的IP地址并不发生变化。对于网卡的物理地址来说,通常每块网卡有一个全世界范围内惟一的物理地址,它保存在网卡的PROM中。网卡初始化时,要从PROM中读出物理地址,把它存放在适当的寄存器和数据结构中,对外来说,寄存器和数据结构中的数值就是这块网卡的物理地址。在智能双冗余驱动程序中,当驱动程序初始化时只读取一块网卡PROM中的物理地址,然后把这个地址写入两块网卡的对应物理地址寄存器和数据结构变量pDrvCtrl中,这样,两块网卡对外就具有统一的物理地址了。因为驱动程序自始至终只有一
30、块网卡处于激活状态,另一块作为备份,因此不会发生同一个网络上两个物理地址相同出现冲突这种现象。3 性能测试3.1 测试方法针对本文设计、实现的双端口网卡智能双冗余驱动进行性能测试。将智能双冗余驱动编译到VxWorks操作系统中,使用带有SEM/DETH双端口以太网卡的计算机做目标机,使用两根网线把目标机连接到交换机上。目标机应用程序以40次/秒的速率向外发送UDP广播报文。采用普通PC机作为主机系统,运行Windows2000操作系统,使用sniffer Pro工具进行网络监控。3.2 测试结果及分析测试结果如图2所示,横坐标代表报文数,纵坐标代表主机接收到的目标机UDP广播报文中两个连续UD
31、P报文之间的间隔时间(单位为秒)。由图2可以看到,由于目标机正常工作状态下是以40次/秒的速率广播发送UDP网络报文的,所以每两个报文之间的时间间隔大部分为25ms左右。在图2中出现了8次主机接收到的广播报文时间间隔为100ms左右的情况,这是由于在目标机端进行了8次网卡切换,在网卡切换过程中出现了报文丢失现象。由测试结果看,本文设计实现的智能双冗余驱动能够很好地实现双端口网卡冗余备份的功能,在检测到主通道网卡设备连接错误时可以切换到备用通道继续进行网络通信,并且可以在两块网卡之间循环切换;同时,该驱动对上层用户透明,呈现单网卡的特性,完全在驱动中实现网卡间的冗余备份。本文设计实现了一个基于V
32、xWorks的双端口网卡智能双冗余驱动,在驱动中实现了网络通信故障诊断和网卡间智能切换功能,对上层应用呈现单网卡特性。通过对设计实现的智能双冗余驱动进行性能测试,验证了设计的正确性和有效性,但通过测试结果也可以看到,在网卡切换过程中还存在切换时间较长的问题,有待进一步研究。基于PC104总线的2FSK调制器的设计与实现作者:时间:2010-03-23来源:网络伺服/机器人/新能源的新技术!大集成工业时代 应运而生英特尔Quark开发者俱乐部是Quark处理器在国内最重要的技术交流平台与资源中心,有第一手的技术资料以及最丰富的Quark开发案例,英特尔技术人员坐镇答疑解惑。摘要:总线与外围设备的
33、接口一直是现代工业控制中最常用而又很重要的一项内容;FPGA由于其诸多优点也受到电路设计者的青睐,得到越来越多的应用。该调制器集成了这两方面的应用,将PC104总线上的数据通过FPGA进行数字调制,经放大滤波后产生连续、没有相位突变的2FSK信号,并输出到外围设备,起到数据传输和控制的作用。关键词:PC104总线;FPGA;2FSK;调制器本文引用地址:嵌入式计算机系统在现代工业控制中发挥着越来越重要的作用,它具有便携、可靠、低功耗、通用、易扩展等诸多优点。使用嵌入式系统进行工业控制要涉及到计算机数据的传输、采集、调制解调等一系列问题。本调制器是一种基于PC104总线的嵌入式系统的外围设备,嵌
34、入式计算机系统通过PC104总线将数据发送到端口,调制器接收数据并进行调制后,将信号输出到受控设备,从而对相应设备起到控制的功能。在本调制器的硬件电路中使用FPGA,提高了系统的通用性。1 总体结构该调制器实现的功能主要包括:识别并接收总线发送的数据;根据不同地址控制信号将数据按路区分(共四路);每路分别将数据按照连续调制的方式进行2FSK调制;对调制后的信号进行放大整形并发送到端口。因此,该调制器的电路部分分别包括数据接收部分、FPGA及外围电路(实现数据分路及数字调制功能)、DA转换电路、放大滤波电路等。系统总体结构如图1所示。2 PC104总线及数据接收电路PCI04总线是专门为嵌入式系
35、统开发的系统总线,是一种自堆栈式、模块化的总线,它基于ISA总线发展而来,有16位和8位两种接口方式(分别为64+40引脚和64引脚端口结构),该总线具有结构紧凑、便携、可靠、功耗低、易扩展等优点。对于工程开发而言,常用的引脚主要有以下几个:SD0SD7,SD8SD15:数据总线,当采用8位接口方式时,只有SD0SD7工作;SA0SA19,LA17LA23:地址信号,对端口进行操作时使用SA0SA9;AEN:DMA选通信号,为高电平时表示处于DMA模式;IOW,IOR:端口写、读信号,低电平有效;SYSCLK:系统提供的基准时钟信号,是标准的方波信号,约为8 MHz;VCC,GND,+12 V
36、,-12 V:系统提供的电源接口。数据接收电路就是要在正确的时序上将所需的数据进行提取,还要实现将电路工作状态传送回总线,以便总线决定是否发送下组数据的功能。由于PC104总线最高支持约8 MHz的时钟频率,而受控设备所需的2FSK信号频率为几千赫兹,因此这里只用8位数据总线就完全能够满足要求。总线接收电路如图2所示。其中SD0SD9,SA0SA9是从总线发来的数据、地址信号,SELOSEL3为分路选择信号,ANSWER0ANSWER3为FPGA的状态返回信号,由于总线速度要比2FSK输出速度高得多,因此,总线要对FPGA数据缓存器是否为空进行查询,当FPGA没有完成数据转换时,总线要等下个周
37、期,直到状态返回信号显示FPGA内部为空时,总线才可以发送下组数据到FPGA。74LS273负责将每路的数据分别进行锁存,4路数据共使用4个。OUT1D0D7为第一路8位数据输出,LOCK0为其控制信号,表示数据的更新。本文引用地址:3 FPGA及其外围电路FPGA具有集成度高、设计灵活、易于修改、节省空间、通用性高等优点。本调制器中FPGA采用的是Al-tera公司的EPF10K20TC144-4器件,该器件具有20 000个典型门,1 153个逻辑单元,144引脚,包括2个全局输入时钟,4个全局输入,86个通用可编程IO引脚。该芯片采用TQFP封装,芯片面积较小,功耗低,其输入、输出与TT
38、L与PC104总线电平完全兼容。FPGA电路主要实现的功能为:接收数据提取电路发送的分路数据;以总线上的SYSCLK时钟为基准,通过分频产生受控设备能识别的频率;为每路输出进行2FSK的数字调制,保证信号的连续性;完成本身的FPGA电路配置。FPGA配置电路如图3所示。本文引用地址:FPGA的配置使用PS和JTAG两种方式,既能实现JTAG方式下电路在线调试,又能保证调试完成后能够正确使用相应的配置器件。其中JP5*2插座为JTAG配置端口,TDI、TDO、TMS、TCK为JTAG配置引脚,该配置方式采用BlasterMV线,通过配置计算机的并口与电路板配置端口进行连接,用于将编写好的配置数据
39、实时传送到FPGA,该方式主要用于电路调试;EPC1C8为FPGA配置器件,采用PS(被动串行)配置方式,由于FPGA内部存储器属于易失性RAM存储因此每次加电后都要将程序重新写入FPGA,配置器件本身就是存储器,其主要作用就是在每次加电后将程序写入FPGA,保证调试完毕的电路能够正常单独进行工作。来自前级电路的数据及控制信号、发到DA转换电路的数据都连接到FPGA芯片的通用IO引脚,通过编程实现所需功能。对FPGA的编程使用Altera公司的Quartus软件,该软件采用图形化与VHDL语言混合编程,易于调试修改。编程实现的主要功能为:对输入数据进行锁存移位,确保每位数据都能得到正确处理;产
40、生两组分频时钟参与2FSK调制,并使分频后的时钟按照时序进入数字调制器;数字调制器负责将不同频率始终按照顺序依次产生连续量化的8位正弦波数字量输出到端口。本设计中由于采用两种频率分时产生,按时序进入调制器,而正弦波数字调制器单独工作的方法,保证了输出正弦波具有连续的相位,不会产生相位突变。4 DA转换电路DA转换共包括四路,其主要功能是将FPGA输出的已调制好的2FSK数字信号转换为正弦波信号。由于FPGA在进行数字调制时产生的是连续量化的正弦波形,两个频率之间不存在相位的突变,不会存在大量的高频杂波,因此,后期的信号处理电路使用放大电路与简单的丌型滤波器对信号进行处理即可得到比较理想的2FS
41、K信号。DA转换电路如图4所示。此电路采用AD7524作为DA转换器,AD7524属于T型电阻网络型DAC,电流输出,8位数字输入,输出建立时间O2 s015s,其数字输入端可采用5 V15 V两种输入,本电路采用兼容TTL电平的5 V输入。电路中将其输入控制端CS、WR同时接地,当有来自FPGA的数据AD1O17输入时无需锁存,直接进行转换,因此要求FPGA的输出要具有锁存功能,此接法可减少输出控制线,减少时序干扰。R1AD1和R1AD2为DA输出波形调整电阻,主要用于调整波形位置,不致产生失真。DA输出采用双极性接法,通过两路LM324通用放大器进行电压放大,输出2FSK信号。图5(a)为
42、经过DA转换后输出的波形在示波器上的截图,由图中可以看到,数字调制并经DA转换后,波形是一种阶梯状正弦波,且波形连续,频率变换交界处无相位突变。该信号经过双极性放大器放大并通过丌型滤波器后变成如图5(b)所示的连续正弦波。本文引用地址:5 结 语采用FPGA进行2FSK调制不但能产生连续相位,还能通过软件直接修改其调制方式、产生频率等一系列参数,具有很好的通用性。本电路中数据提取电路属于原理性电路,实际设计中可将该部分电路置于FPGA内部进行设计,而系统参考时钟SYSCLK可接在FPGA的全局时钟输入端,减少延迟差异。PC104总线系统是一种新型的计算机测控平台,作为嵌入式PC的一种,在软件与
43、硬件上与标准的台式PC(PC/AT)体系结构完全兼容,它具有如下优点:体积小、十分紧凑,并采用模块化结构,功耗低,总线易于扩充,紧固堆叠方式安装,适合于制作高密度、小体积、便携式测试设备,因此在军用航空设备上有着广泛的应用,但也正是PC104板的这种小尺寸结构、板上可用空间少给设计带来了一定的困难,所以本设计采用了复杂可编程器件CPLD,用CPLD完成了PC104总线与429总线通讯的主要电路,大大节省了硬件资源,本文着重介绍了CPLD部分的设计。本文引用地址:1 系统总体设计CPLD是一种复杂的用户可编程逻辑器件,由于采用连续连接结构,易于预测延时,从而使电路仿真更加准确。再加上使用方便的开
44、发工具,如MAX+PLUSII、Quartus等,使用CPLD器件可以极大地缩短产品开发周期,给设计修改带来很大方便。本论文描述了利用开发工具MAX+PLUS II实现CPLD处理ARINC429数据通信。系统设计方案如图1所示。ARINC429收发电路部分,由两组3282和3l82芯片构成,其中每组芯片实现二路接收、一路发送,其中的控制信号均有CPLD编程产生:在CPLD部分,D0.15为16位双向数据总线,实现AR1NC429收发电路与PC104总线接口之间的数据通信,IO16为16位芯片选择信号;在PC104总线接口部分,XD0.15为16位双向数据总线,XA1.9为地址总线,连接CPL
45、D,进行选片操作,XIOR和XIOW 为IO读写信号,XAEN 是允许DMA控制地址总线、数据总线和读写命令线进行DMA传输以及对存储器和I/O设备的读写。2 系统硬件组成429的PC104总线接口板的硬件组成框图如图2所示,主要包括AR1NC429收发电路(HS3282和HS3l82芯片组)、CPLD、429板与PC 机的接口总线PC104总线、与外部的429接口IDC16插座、中断控制开关等,其关系如图2所示。本接口板元器件布局如图3所示。3 CPLD内部功能及实现3.1 开发流程描述本系统中的CPLD使用Altera公司的MAX7000S系列可编程逻辑器件中的EPM7128SQC100-
46、6型号,从最初的电路设计思想到MAX+PLUSII的波形仿真,再到CPLD芯片编程结束要经过的一般开发流程如图4所示。3.2 CPLD中的模块设计本设计中CPLD 的功能是实现ARINC429收发电路与接口板的接口总线PC104总线的数据通信。其功能模块可以分为6部分,以下逐一介绍各模块的功能及其实现的方法。(1)产生AR1NC429控制器HS3282所需的TTCLK时钟信号模块TTCLK即发射器时钟信号,本设计中该信号有480 KHZ和1 MHZ两种可选频率,是由一个48 MHZ的晶振提供信号给CPLD,然后由CPLD编程产生480KHZ和1MHZ两种信号以备选择。该模块用图形编辑的方式实现
47、。要产生3282所需要的480KHZ信号需要对输入48MHZ信号进行两次10分频,要产生1 MHZ信号需要对输入信号进行6分频再8分频。6分频电路采用3个JK触发器实现,8分频电路采用74393实现,10分频电路采用7490实现。(2)产生复位信号/MR和控制发射器使能信号ENTX的信号ENT模块/MR是对3282的主复位信号,/MR将直接送到HS3282,而ENT将送到另一模块中,用于控制发射器使能信号ENTX的产生,ENTX=ENT*/TXR,其中TXR为发送缓冲区空标志。该模块也采用电路设计输入方式。其电路主要由4个D型触发器74LS74芯片来完成。输入为总线驱动器的前4个输出,即D0D
48、3,时钟脉冲为产生HS3282读写信号模块的一个输出信号/WR3,输出为两个HS3282的复位信号/MR1和/MR2以及ENT1和ENT2。本模块具体实现电路如图5所示。(3)产生片选信号/MCS的模块本文引用地址:本模块产生的/MCS信号用于驱动双向总线驱动器,进行数据传输,并用于选片对HS3282进行读写。此模块用一片8位判决电路74LS688来实现其功能。其中P5-P1接一组基址选择开关,Q5Q1分别接PC104总线的地址总线的XA7、XA9、XA8、XA6和XA5,G接PC104总线的地址使能信号端XAEN。只有当XAEN输入为低时,并且P5Pl与Q5-Q1的对应端相等时,输出为低,才
49、有效。(4)双向总线驱动器模块该模块实现AR1NC429收发电路与接口板的接口总线PC104总线的16位数据传输。该模块设计过程为,先用VHDL设计输入方式设计两个单向三态数据收发器,然后用电路设计输入方式,将两个单向数据收发器合成为一个双向数据收发器。双向总线驱动器模块的功能表如表1所示。 表1 双向总线驱动器模块的功能表 使能信号E 方向DIR 操作双向总线驱动器模块产生其一个单向三态数据收发器(TRI_GATE1)的VHDL语言设计如下产生另一个单向三态数据收发器(TRI_GATE)的VHDL语言与此类似,只是少了D0D3的输出部分。两个单向三态数据收发器构成双向总线驱动器的电路设计如图
50、6所示(D0_outD3_out作为图5中的D0-D3输入)(5)产生HS3282读信号与写信号和ENTX使能信号模块本模块要实现的功能是产生HS3282的读写信号和发送使能信号及一个送入PC104总线的输入输出16位芯片选择信号/IO16。该模块用VHDL语言输入,其相应的VHDL语言如下(6)中断控制模块本模块用于实现中断控制操作,有一个接收器满便产生中断,产生中断时亦能判断出中断源。该模块是用VHDL输入方式产生的,其相应的VHDL程序如下3.3CPLD程序的下载各输入模块经过编译处理,根据其相互关系连结,再通过功能仿真和时序仿真确认无误后,对各输入输出端口进行管脚分配。当整个设计完成时
51、,MAX+PLUSII将生成一个文件(.pof),该文件通过下载电缆从JTAG口传送到PC104板上的CPLD芯片内部。这样就可将CPLD构造成自己的专用芯片,由此便可以对设计的PC104板卡进行调试。调试过程中CPLD的设计部分还可根据需要进行修改,只是修改后要重新产生.pof文件,重新将文件加载到芯片中。4 结束语针对PC104接口板的尺寸小的特点,本论文介绍了用CPLD实现基于PC104总线的429接口板,CPLD大大节省了硬件资源,同时也节省了板卡上的可利用空间,彻底解决了PC104 板卡的小尺寸给设计带来的困难。且CPLD修改简单,给调试工作带来了方便。该板卡经过调试后实验,可稳定工
52、作。实验结果表明:应用CPLD简化了系统结构,缩短了设计周期,提高了系统的可靠性。DSP HPI口与PC104总线接口的FPGA设计作者:时间:2006-07-19来源:网络伺服/机器人/新能源的新技术!大集成工业时代 应运而生英特尔Quark开发者俱乐部是Quark处理器在国内最重要的技术交流平台与资源中心,有第一手的技术资料以及最丰富的Quark开发案例,英特尔技术人员坐镇答疑解惑。摘 要通过对TI公司TMS320C5000系列DSPHPI总线和PC104总线时序的分析,以VHDL语言为工具,使用Altera的FPGA芯片EP1K50,设计完成PCI04总线和DSPHPI总线之间的通信接口
53、,并在一款以TMS320VC5409DSP为数据采集处理器、研华嵌入式工控主板PCM-5825为系统主板组成的嵌入式数据采集系统申得到了运用;给出与整个接口设计相关的VHDL源代码和在PCM-5825上验证接口设计的X86汇编语言程序。关键词DSPHPIPC104总线FPGAVHDL源代码在一款嵌入式数据采集系统的设计中,采用TMS320VC5409 DSP作为对多路信号的采集与预处理,处理后的数据送至12.7 Cm(5in)的工控计算机中进行分析与保存。因为工控机的总线为PC104,因此需要设计PC104与DSP之间的通信接口。系统中以Altera公司的一片FPGA芯片EPlK50来对该接口
54、和数据采集过程中的逻辑控制与FIFO进行设计。下面主要阐述该通信接口的设计。1 DSP的HP0接口TMS320VC5409 DSP的HPI是一个8位的并行接口,主要用来与主设备或主处理器接口。DSP内部有一定数量的双访问RAM,除了DSP本身可以访问该RAM区域外,主机也可以通过HPI口实现对双访问RAM的访问,从而实现主机与DSP的通信。HPI接口通过HPI控制寄存器HPIC、地址寄存器HPIA、数据寄存器HPID等3个HPI寄存器进行控制和实现数据传输。这3个寄存器都是16位的,因此主机访问这些寄存器时需要分两次操作才能完成。HPIC只有4位用于控制HPI的操作,这4位分别位于高字节和低字
55、节的低4位,并规定HPIC的高低字节必须相同:Bit08(BOB)一一用于字节顺序控制,BOB=1表示第1个字节为低字节,否则第1个字节为高字节;Bitl9(SMOD)一一访问模式控制,SMOD=l表示共享访问模式(SAM),否则为主机访问模式(HOM);Bit210(DSPINT)一一主机通过将该位写l来向DSP发送1次HPI中断;Bit311(H1NT)一一DSP通过向该位置l,使外部引脚HINT产生一个低电子作为给主机的中断,中断的清除必须由主机向该位写l来清除。HPID是数据寄存器,主机通过读写该寄存器来实现对共享RAM的读写,RAM的地址则由HPIA地址寄存器的内容来决定。因此,主机对DSP的访问过程是,先往HPI地址寄存器HPIA写入欲访问的地址,然后再对数据寄存器HPID进行读或写访问。HPI接口信号包括:HAS一一输入,地址锁存信号,可连接到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度解析(2026)《GBT 35678-2017公共安全 人脸识别应用 图像技术要求》
- 深度解析(2026)《GBT 35536-2017酵母浸出粉检测方法》
- 《DAT 11-1994文件用纸耐久性测试法》(2026年)合规红线与避坑实操手册
- 幼儿园保健医准入制度
- 卫生间保洁员职责
- 笛子独奏曲题库及解析
- 导演基础题目及详解
- 全国导游证导游业务题目及分析
- 2025-2026学年辽宁沈阳二中高一下学期4月月考生物试题含答案
- DB34-T 4818-2024 地名信息采集规范
- 变压器维护保养培训课件
- 2026年中考复习必背初中英语单词词汇表(精校打印)
- 生物安全培训考试题目含答案
- 集体备课培训课件
- 建筑机电安装知识点课件
- DB11T945.1-2023建设工程施工现场安全防护场容卫生及消防保卫标准第1部分
- 老年康复护理培训教育课件
- 人教部编版七年级语文下册全册教案(附课后反思)
- 2025年四川省攀枝花市仁和区人才引进33人历年高频重点提升(共500题)附带答案详解
- 企业建筑施工安全生产管理制度汇编
- 2024年河北高中学业水平合格性考试地理试题(含答案)
评论
0/150
提交评论