学海荡舟手机网

主页 > 实用文摘 > 教育文摘_22 > > 详细内容

USB接口芯片FT245AM的原理_接口电路论文

 摘要:介绍了一种usb总线接口芯片ft245am及其在航空arinc429总线测试仪中的应用方法,同时介绍了ft245am的内部结构、管脚说明以及与微处理器的接口电路,给出了航空arinc429总线测试仪的总体框图、部分原理和接口逻辑的verilog hdl源代码及仿真时序。

    关键词:usb总线 arinc429总线 ft245am cpld mcu

随着计算机的广泛就算,与计算机通信的方式也越来越多,对通信速度和易用性要求也越来越高,这使得usb通信方式显得越来越突出,应用领域也越来越广泛。因此,在鼠标、键盘、游戏杆、数据采集卡、数码相机、掌上电脑中都有usb的应用。

ft245am是美国ftdi公司生产的一种usb专用芯片。它具有功能强、体积小、传输速度快、符合usb1.1技术规范、易于一微处理器接口等特点,因而倍受用户的青睐。笔者采用ft245am成功地开发了航空arinc429总线测试仪。

    ft245am集成了usb1.1通信协议和外设接口,可以方便地实现usb主机与外设mcu、cpld的接口,其数据传输速率可达1mb/s。ft245am内部128字节的接收fifo和384字节的发送fifo大大提高了usb主机与外设的通信质量。另外,ft245am还具备3.3v的ldo调整器、8位频器、usb数据时钟恢复pll、usb数据收发器,且eeprom接口逻辑单元可外接串行存储器93c46,以实现usb vid、pid、序列号和设备说明字符串的存储。使用ft245am可大大简化其外围电路,使用户设备更趋于小型化。

1 ft245am简介

1.1 ft245am内部结构和引脚功能

ft245am芯片的内部结构如图1所示。该芯片采用qfp32封装,其各管脚说明如下:

usbdp(7脚):usb差分数据正端;

eedata(2脚):串行存储器数据;

usbdm(8脚):usb差分数据负端;

test(5脚):厂商测试管脚;

3v3out(6脚):3.3v电源输出;

d[7:0](25~18脚):外设接口数据总线;

xtin(27脚):晶体振荡器输入;

rd(16脚):外设读数据信号输入;

xtout(28脚):晶体振荡器输出;

wr(15脚):外设写数据信号输入;

rcclk(31脚):rc定时器;

txe(14脚):发送fifo空标志输出;

reset(4脚):芯片复位输入;

rxf(12脚):接收fifo非空标志输出;

eecs(32脚):串行存储器片选;

eereq(11脚):串行存储器读取请求;

eesk(1脚):串行存储器时钟;

eegnt(10脚):串行存储器读取允许;

vcc,avcc(3、13、26、30脚):分别为芯片电源和电路模拟电源;

gnd,agnd(9、19、29脚):芯片地和模拟地。

1.2 ft246am与外设的数据传输方法

ft245am具有外设接口控制单元,可以方便地与mcu、cpld接口来实现数据交换。

    当外设从ft245am中读取usb主机数据时,如果ft245am的管脚rxf为高电平,则表明ft245am没有接收到usb主机发送的数据,此时外围mcu(cpld)不能读取数据。而当mcu(cpld)检测到rxf为低电平时,表明ft245am的接收fifo中已有usb主机发送的数据,此时外围mcu(cpld)便可以通过外设数据总线读取数据。外设通过ft245am读取usb主机数据的时序图如图2所示。

当外设通过ft245am写数据到usb主机时,如果ft245am的管脚txe为高电平,则表示ft245am内部正忙,外围mcu(cpld)不能向ft245am的发送fifo中写数据。而当外围mcu(cpld)检测到txe为低电平时,则表明ft245am的发送fifo空闲,外围mcu(cpld)可以向ft245am中写数据到usb主机。图3所示是外设通过ft245am向usb主机发送数据的时序图。

2 在arinc429总线测试仪中应用

arinc429总线在航空领域有着广泛的使用,该总线采用差分数据传输方式,支持12.5kbps和100kbps两种传输速率。由于arinc429总线设备的应用领域比较特殊,因此需要较高的可靠性,同时其测试设备也显得尤为重要。为了方便该总线设备的测试,摆脱专用测试设备的不灵活性,急需一种方便快捷的通信方式来实现计算机与该总线设备的互连,使该总线设备的测试可以在计算机中自动完成,从而提供测试设备的灵活性和通用性。因此,提出了基于usb总线的arinc429总线测试仪。

2.1 基于usb的arinc429总线测试仪结构

考虑到usb总线为自供电试,最大可驱动500ma电流,故arinc429测试仪选取4路接收、2路发送的结构。当然,如果允许外接电源,还可以实现更多的收发路数,但这样会降低usb总线的方便性。由于arinc429总线的传输速率最大为100kbps,而usb1.1的通信能力可达12mbps。,考虑到协议的额外开销,一路usb总线同时完成2路arinc429总线的发送和4路接收。

为了提高arinc429总线测试仪的实时性,可选用高速mcu控制usb接口芯片ft245am,但mcu没有足够的i/o数,无法满足与arinc429控制芯片连接的i/o管脚,因此,可选用cpldepm7128s来完成ft245am的控制和数据传输。

基于usb的arinc429总线测试仪结构如图4所示。图5所示是ft245am部分的外围电路。

在谝测试仪电路中,epm7128s用于完成arinc429总线控制芯片dei1016与usb控制芯片ft245am的逻辑变换,以使usb主机可以实时发送数据到arinc429总线设备,并实时接收设备返回的数据,以供主机中的测试软件进行记录和检测,从而满足设备故障的诊断和定位之需。

    2.2 epm7128s与ft245am的接口实现

epm7128s与ft245am的接口电路主要完成从ft245am的接收fifo中读数据和向ft245am的发送fifo中写数据。采用纯硬件实现方式可使ft245am的接口延时和整个测试仪通信环节的延时达到最小。

epm7128s可与ft245am共享工作时钟,它使用12条i/o与ft245am相连,分别对应于ft245am的d0~d7、txe、rxf、rd、wr等。

对epm7128s的编程可采用veriloghdl语言,并采用synplify综合,最后使用maxplus ii进行布线和仿真。与ft245am的接口设计代码如下:

//-------------

//产生ft245am读信号

always@(posedge clk or negedge reset)

begin

if(reset = =1'b0)

usb_rd<=1'b1;

else if(usb_rxf= =1'b1)

usb_rd<=1'b1;

else if(usb_rd= =1'b0)

usb_rd<=1'b1;

else if((usb_rxf = = 1'b0)&&(usb_rden= =1'b1)&&(cnt= =2'd0))

usb_rd<=~usb_rd;

end

//---------------------

//计数器,控制ft245am读写时序

always@(posedge clk or negedge reset)

begin

if(reset = =1'b0)

cnt<=2'd0;

else if(cnt !=2'd0)

cnt<=cnt+1'b1;

else if((usb_txe = =1'b0)&&(data_valid = =1'b1)&&(usb_rden= =1'b0))

ent<=cnt+1'b1;

end

//---------------------

//产生ft245am写信号

always@(posedge clk or negedge reset)

begin

if(reset= =1'b0)

usb_wr<=1'b0;

else

usb_wr<=(cnt= =2'd1);

end

//---------------------

//读取usb主机数据

always@(posedge clk or negedge reset)

begin

if(reset= =1'b0)

rx_data<=8'b00;

else if(usb_rd = = 1'b0)

rxdata<=usb_data;

end

//---------------------

//向usb主机写数据

always@(posedge clk or negedge reset)

begin

if(reset = =1'b0)

tx_data<=8'h00;

else if(cnt[0] = =1'b1)tx_data<=data_429;

end

//---------------------

//ft245amgn epm7128s的数据三态接口

assign usb_data=(cnt[1] = =1'b1)?tx_data:8'hzz;

//----------------------

图5 ft245am外围电路图

3 结束语

本文介绍了usb接口芯片ft245am的原理和在航空arinc429总线测试仪中的具体应用实例方法。笔者将epm7128与ft245am的接口逻辑在maxplus ii环境下进行了仿真,结果表明:使用该设计完全可满足实际要求,因此,使用usb通信接口的航空arinc429总线测试仪,大大便利了429总线设备与计算机的通信,有效提高了429总线设备的检测效率。