非多路復(fù)用與多路復(fù)用總線轉(zhuǎn)換橋的設(shè)計與實現(xiàn) 作者: 時間:2007-03-09 來源:網(wǎng)絡(luò) 加入技術(shù)交流群 掃碼加入和技術(shù)大咖面對面交流海量資料庫查詢 收藏 摘要:提出了一種新穎的非多路復(fù)用總線與多路復(fù)用總線的轉(zhuǎn)換接口電路。以兩種總線的典型代表芯片TMS320F206與SJA1000為例,分析了各自時序的特點,詳細論述了兩種總線之間轉(zhuǎn)換的關(guān)鍵:讀、寫周期的使能信號和起始基準(zhǔn)的確定,并采用復(fù)雜可編程器件CPLD實現(xiàn)。 關(guān)鍵詞:非多路復(fù)用總線 多路復(fù)用總線 時序 CPLD DSP 微處理器對外并行總線接口方式一般分為兩種,一種為多路復(fù)用方式,數(shù)據(jù)與地址采用共用引腳,分時傳輸;另一種是非多路復(fù)用方式,數(shù)據(jù)與地址采用分離引腳,同時傳輸。目前國內(nèi)應(yīng)用廣泛的MCS196和MCS51系列微處理器采用多路復(fù)用總線,設(shè)計電路時應(yīng)考慮如何將數(shù)據(jù)和地址從總線上分離出來,與存儲器、外圍接口芯片的數(shù)據(jù)和地址引腳連接。一般利用ALE(地址鎖存)信號觸發(fā)鎖存器(74LS373)將地址與數(shù)據(jù)信號分離出來。近幾年來,隨著低價位DSP芯片的出現(xiàn),DSP芯片已被廣泛應(yīng)用到控制與測量領(lǐng)域中。國內(nèi)使用的DSP芯片以TI公司的TMS320系列為主流。這種微處理器對外的數(shù)據(jù)和地址總線接口方式為非多路復(fù)用方式,不能與多路復(fù)用方式的外圍接口芯片(如CAN控制器SJA1000)直接相連。國內(nèi)和國外也沒有一款專用集成電路芯片來實現(xiàn)非多路復(fù)用方式到多路復(fù)用方式的轉(zhuǎn)換。參考文獻1提出了一種轉(zhuǎn)換方法,是將DSP的數(shù)據(jù)線作為CAN控制器的數(shù)據(jù)地址復(fù)用線,用DSP的地址線A0作為地址、數(shù)據(jù)選擇線。A0=1時,地址有效;A0=0時,數(shù)據(jù)有效,即用奇數(shù)地址傳送地址,用偶數(shù)地址傳送數(shù)據(jù)。雖然此方法實現(xiàn)起來電路簡單,但在編程時卻需要考慮發(fā)送的數(shù)據(jù)何時作為CAN控制器的地址,何時作為CAN控制器的數(shù)據(jù),沒有從根本上解決非多路復(fù)用方式到多路復(fù)用方式的轉(zhuǎn)換。本文以TMS320F206與SJA1000的連接為例,采用復(fù)雜可編程邏輯器件CPLD,完成了用硬件來實現(xiàn)非多路復(fù)用方式到多路復(fù)用方式的轉(zhuǎn)換。 1 多路復(fù)用總線的信號和時序 1.1 SJA1000接口的主要信號說明 CAN控制器SJA1000提供的微處理器接口方式為典型INTEL或MOTOROLA地址數(shù)據(jù)多路復(fù)用總線模式,主要信號有地址數(shù)據(jù)信號AD7~AD0、地址選通信號ALE、片選信號CS、讀信號RD、寫信號WR、模式選擇信號MODE。當(dāng)MODE=1時,為INTEL模式;當(dāng)MODE=0時,為MOTOROLA模式。本文描述的地址數(shù)據(jù)多路復(fù)用總線模式均為INTEL模式。圖1和圖2分別為INTEL模式讀、寫周期時序。AD7~AD0引腳在ALE有效時,傳送的是地址信號;在RD或WR有效時,傳輸?shù)氖菙?shù)據(jù)信號。 圖1和圖2 1.2 SJA1000的時序分析 以SJA1000的讀時序為例進行說明。在設(shè)計轉(zhuǎn)換橋時,多路復(fù)用總線的各信號必須滿足如下時間參數(shù)要求:ALE的脈沖寬度(tWAL)最小為8ns;地址信號(A0~A7)建立到ALE變?yōu)榈碗娖剿钑r間(tsuA-AL)最小為8ns;RD的有效脈寬(tWR)最小為40ns;RD為低電平到數(shù)據(jù)信號D7~D0有效所需時間tRLOV最大為50ns;RD變?yōu)楦唠娖降降刂窋?shù)據(jù)線釋放(即高阻狀態(tài))所需時間tRHDZ最大為30ns。 2 非多路復(fù)用總線的信號和時序 2.1 TSM320F206接口的主要信號說明 TSM320F206的總線接口方式采用地址和數(shù)據(jù)分離的形式。其主要信號有地址信號A0~A15、數(shù)據(jù)信號D0~D15、讀信號RE、寫信號WE、閘門信號STRB、I/O空間選擇信號IS、數(shù)據(jù)存儲器選擇信號DS、程序存儲器選擇信號PS、機器時鐘輸出信號CLKOUT1。當(dāng)對外部數(shù)據(jù)存儲器、程序存儲器或I/O空間訪問時,STRB有效;當(dāng)對外部I/O訪問時(即程序中使用PORTR和PORTW指令),IS有效。 2.2 TSM320F206的I/O時序分析 TMS320F206的讀寫時序如圖3和圖4所示。I/O的讀或?qū)懝ぷ髦芷谝话阍趦蓚€機器周期內(nèi)完成。在此期間,IS信號和地址信號一直保持有效;閘門信號STRB發(fā)生在第一個機器周期有效后并保持一個機器周期以上;RE和WE有效時,數(shù)據(jù)有效。兩次連續(xù)的寫操作(如圖4所示)時,WE的有效間隔時間tW(WH)最小為(2H-4)ns,而兩次連續(xù)的讀操作(如圖3所示)時,RE的有效間隔時間tW(RDH)為(H-4)ns~Hns,其中H為0.5倍的機器時鐘周期??梢妼τ谶B續(xù)的讀、寫操作,RE、WE的有效間隔不同,設(shè)計電路時應(yīng)注意此細節(jié)。在連續(xù)的讀或?qū)懖僮鲿r,IS信號一直為有效電平‘0’,無法以此信號作為產(chǎn)生SJA1000的ALE、讀、寫信號起始基準(zhǔn);而在寫周期時,STRB與WE的變化始終保持一致,因此在產(chǎn)生SJA1000寫周期時,可以用STRB作為ALE、WR產(chǎn)生的起始基準(zhǔn)信號。但是TSM320F206在連續(xù)的讀操作時,STRB一直保持為低電平,可見在產(chǎn)生SJA1000讀、寫操作周期時,無法單獨以它作為ALE、RD信號產(chǎn)生的起始基準(zhǔn),需與IS、WE、RE進行邏輯組合來作為SJA1000讀、寫操作周期的起始基準(zhǔn)信號。 3 CPLD實現(xiàn)轉(zhuǎn)換橋的設(shè)計方法 此轉(zhuǎn)換橋如果用中規(guī)模集成電路(74系列)實現(xiàn)起來比較復(fù)雜,工作頻率又較高,布線時若稍不合理,易引起干擾,使得電路工作不穩(wěn)定,因此這里采用高可靠性的復(fù)雜可編程邏輯器件CPLD,用硬件描述語言VHDL來實現(xiàn)。 3.1 轉(zhuǎn)換橋引腳信號定義 圖5為轉(zhuǎn)換橋的時序仿真圖,其中轉(zhuǎn)換橋的各引腳信號與TMS320F206和SJA1000l引腳信號的對應(yīng)為:fabl7接A0~A7;fdb7接D0~D7;fds接IS;fstrb接STRB;fwe接WE;frd接RE;fcp接CLKOUT1;ale接ALE;adb7接AD7~AD0;wr接WR;rd接RD。 3.2 SJA1000讀、寫周期使能信號和起始基準(zhǔn)信號的確定 轉(zhuǎn)換橋的基準(zhǔn)時鐘fcp為TMS320F206的機器時鐘輸出信號CLKOUT1。fcp為20MHz的方波信號。因為TMS320F206的讀或?qū)懝ぷ髦芷谝话銥橐弧蓚€機器時鐘周期,此時基準(zhǔn)時鐘fcp最多含有四個邊沿狀態(tài),無法完成非多路復(fù)用到多路復(fù)用的轉(zhuǎn)換,所以通過軟件等待設(shè)置,使TMS320F206對外部總線操作時,由原來所用的一個機器時鐘周期延長到四個機器時鐘周期,邊沿狀態(tài)個數(shù)增加了4倍。另外fcp的脈寬為25ns,這樣可以保證轉(zhuǎn)換橋輸出的多路復(fù)用總線時序的時間參數(shù)滿足SJA1000的時序要求。從上面的時序分析中可以確定出SJA1000的讀、寫周期的使能信號IS和起始基準(zhǔn)信號STRB、WE、RE邏輯組合。IS作為轉(zhuǎn)換橋的片選信號,當(dāng)IS為“0”時,轉(zhuǎn)換橋工作;否則,轉(zhuǎn)換橋的各輸出信號被懸掛。當(dāng)IS為“0”、STRB為“0”、WE為“0”、RE為“1”時,DSP開始對外部I/O進行寫操作,在后面緊跟的四個DSP機器時鐘周期產(chǎn)生出1個SJA1000的寫周期;當(dāng)IS為“0”、STRB為“0”、WE為“1”、RE為“1”時,DSP開始對外部I/O進行讀操作,在后面緊跟的四個DSP機器時鐘周期產(chǎn)生出1個SJA1000的讀周期。 3.3 讀操作轉(zhuǎn)換過程 通過軟件等待設(shè)置,使DSP的 I/O讀、寫操作需四個機器時鐘周期。在第一個時鐘周期的上升沿產(chǎn)生ale信號(脈寬為0.5倍的機器時鐘周期),同時將DSP輸入的低八位地址fabl7鎖存并送到地址數(shù)據(jù)復(fù)用總線adb7,并保持到第二個時鐘周期的上升沿為止,此時adb7為高阻狀態(tài)。第三、第四個時鐘周期,DSP的讀信號frd有效,將此信號直接送到rd引腳,此時adb7引腳的數(shù)據(jù)直接送給fdb7引腳,讀操作結(jié)束。 圖5 轉(zhuǎn)換橋的時序仿真圖 3.4 寫操作轉(zhuǎn)換過程 在寫操作的四個時鐘周期中,在第一個時鐘周期的上升沿產(chǎn)生ale信號(脈寬為一個機器時鐘周期),同時將DSP輸入的低八位地址fabl7引腳的信號送到adb7上,并保持到第三個時鐘周期結(jié)束。在第四個時鐘周期的上升沿產(chǎn)生寫信號wr(寬度為一個時鐘周期),在DSP寫信號few的上升沿處鎖存數(shù)據(jù)線fdb7來的信號,并將其送到adb7引腳上,延時到第五個時鐘周期時把adb7變?yōu)楦咦锠顟B(tài),寫操作結(jié)束。 本文提出的非多路復(fù)用總線到多路復(fù)用總線轉(zhuǎn)換橋采用了Xilinx公司的CPLD芯片XC95144-15-PQ100,并使用該公司開發(fā)的集成環(huán)境Fundation F3.1i,將其集成為一塊專用芯片。通過大量的實驗測試,此轉(zhuǎn)換橋工作非常穩(wěn)定,現(xiàn)已應(yīng)用到電力網(wǎng)絡(luò)饋線遠程終端裝置(FTU)中。
評論