1 引 言 近幾年來,隨著低價位DSP芯片的出現,他已被廣泛應用到控制與測量領域中。國內的DSP芯片以TI公司的TMS320系列為主流。這種微處理器對外的數據和地址總線結構形式為非多路復用方式,不能與多路復用形式的外圍接口芯片(如CAN控制器SJA1000)直接相連。國內、外也沒有一款專用集成芯片來實現非多路復用方式到多路復用方式的轉換。 文獻[1]提出了一種轉換方法,是將DSP的數據線作為CAN控制器的數據地址復用線,用DSP的地址線A0作為地址、數據選擇線。A0=1時,地址有效;A0=0時,數據有效,即用奇數地址傳送地址,用偶數地址傳送數據。雖然此方法實現起來電路簡單,但在編程時,程序員必須考慮發送的數據何時作為CAN控制器的地址,何時作為CAN控制器的數據,沒有從根本解決非多路復用方式到多路復用方式的轉換。 本文以TMS320F206與SJAl000連接為例,提出采甩復雜可編程邏輯器件CPLD,完全用硬件實現非多路復用方式到多路復用方式的轉換。 2 多路復用總線的信號和時序 2.1 SJAl000接口的主要信號說明 CAN控制器SJAl000提供的微處理器接口方式為典型INTEL或MOTOROLA地址數據多路復用總線模式,主要信號有地址數據信號AD7~AD0,地址選通信號ALE,片選信號CS,讀信號RD,寫信號WR,模式選擇信號MODE。當MODE=1時,為INTEL模式;當MODE=0時,為MOTOROLA模式。后面描述的地址數據多路復用總線模式均為INTEL模式。 圖1,圖2分別為INTEL模式讀、寫周期時序[2]。AD7~AD0引腳在ALE有效時,傳送的是地址信號,在RD或WR有效時,傳輸的是數據信號。 2.2 SJAl000時序分析 以SJAl000的讀時序(圖1)為例,說明在設計轉換橋時,多路復總線的各信號必須滿足時間參數要求。ALE的脈沖寬度tw(AL)最小為8 ns;地址信號(A7~A0)建立到ALE變為低電平所需時間tsu(A-AL)最小為8 ns;RD的有效脈寬tw(R)最小為40 ns;RD為低電平到數據信號(D7~D0)有效所需時間tRLQV最大為50 ns;RD變為高電平到地址數據線釋放(即高阻狀態)所需時間(tRHDZ)最大為30 ns。 3非多路復用總線的信號和時序 3.1 TSM320F206總線主要信號說明 TSM320F206的總線接口方式采用了地址和數據分離的形式。其主要信號有地址信號A0~A15,數據信號DO~D15,讀信號RE,寫信號WE,閘門信號STRB,I/O空間選擇信號IS,數據存儲器選擇信號DS,程序存儲器選擇信號PS,機器時鐘輸出信號CLKOUT1。當對外部數據存儲器、程序存儲器或I/O空間訪問時,STRB有效,若對外部I/O訪問時(即程序中使用PORTR,PORTW指令),IS有效。 TMS320F206的讀寫時序[2]如圖3和圖4所示。I/O的讀或寫工作周期一般在兩個機器周期內完成,在此期間,IS信號地址信號一直保持有效;閘門信號STRB發生在第一個機器周期有效后并保持一個機器周期以上;RE和WE有效時,數據有效。在兩次連續的寫操作(如圖4所示),WE的有效間隔時間tw(WH)最小為(2H-4)ns,而兩次連續的讀訪問(如圖3所示),RE的有效間隔時間tw(RDH)為(H-4)ns-H ns,其中H為0.5倍的機器時鐘周期,可見連續的讀、寫操作時,RE,WE的有效間隔不同,在設計電路時,應注意此細節。在連續的讀或寫操作時,IS信號一直為有效電平'0',無法以此信號作為產生SJAl000的ALE、讀、寫信號起始基準,而在寫周期時,STRB與WE的變化始終保持一致,因此在產生SJAl000寫周期時,可以用STRB作為ALE、寫信號WR產生的起始基準信號。但是TSM320F206在連續的讀操作時,STRB一直保持為低電平,可見在產生SJAl000讀、寫操作周期時,無法單獨以他作為ALE,RD信號產生的起始基準,需與IS,WE,RE進行邏輯組合作為SJAl000讀、寫操作周期的起始基準信號。 此轉換橋如果用中規模集成電路(74系列)實現比較復雜,工作頻率又較高,布線時稍不合理,易引起干擾,使得電路工作不穩定,因此采用高可靠性的復雜可編程邏輯器件CPLD,用硬件描述語言VHDL來實現。 4.1轉換橋引腳信號定義 圖5為轉換橋的時序仿真結果,其中轉換橋的各引腳信號與TMS320F206和SJAl0001引腳信號對應為:fabl7接A0~A7;fdb7接DO~D7;fds接IS;fstrb接STRB;fwe接WE;frd接RE;fcp接CLKOUT1;ale接ALE;adb7接AD7~AD0;wr接WR;rd接RD。 4.2 SJA1000的讀、寫周期的使能信號和起始基準確定 轉換橋的基準時鐘fcp為TMS320F206的機器時鐘輸出信號CLKOUT1。fcp為20 MHz的方波信號。因為TMS320F206的讀或寫工作周期一般為1~2個機器周期,此時基準時鐘fcp最多含有4個邊沿狀態,無法完成非多路復用到多路復用的轉換,所以通過軟件等待設置[4],使TMS320F206對外部總線操作時,由原來所用的1個機器時鐘周期,延長到4個機器時鐘周期,邊沿狀態個數增加了4倍,另外fcp的脈寬為25 ns,這樣可以保證轉換橋輸出的多路復用總線時序的時間參數滿足SJAl000的時序要求。從上面時序分析中可以確定出,SJAl000的讀、寫周期的使能信號(IS)和起始基準信號(STRB,WE,RE)邏輯組合。IS作為轉換橋的片選信號,當IS為'0',轉換橋工作,否則轉換橋的各輸出信號被懸掛。當IS為'0',STRB為'0',WE為'0',RE為'1'時,DSP開始對外部I/O進行寫操作,在后面緊跟的4個DSP機器周期產生出1個SJAl000的寫周期;當IS為'0',STRB為'0',WE為'1',RE為'1'時,DSP開始對外部I/O進行讀操作,同樣在后面緊跟的4個DSP機器周期產生出1個SJAl000的讀周期。 4.3讀操作轉換過程 通過軟件等待設置,使DSP的I/O讀、寫操作需4個機器時鐘周期。第一個時鐘周期的上升沿產生ale信號(脈寬為O.5倍的機器時鐘周期),同時將DSP輸入的低8位地址fab17鎖存并送到地址數據復用總線adb7,并保持直到第二個時鐘周期的上升沿為止,此時adb7為高阻狀態。第三、第四個時鐘周期DSP的讀信號。frd有效,將此信號直接送到rd引腳,此時adb7引腳的數據直接送給fdb7引腳,讀操作結束。 4.4寫操作轉換過程 在寫操作的4個時鐘周期中,第一個時鐘周期的上升沿產生ale信號(脈寬為一個機器時鐘周期),同時將DSP輸入的低八位地址fabl7引腳的信號送到adb7上,并保持到第三個時鐘周期結束。第四個時鐘周期的上升沿產生寫信號wr(寬度為一個時鐘周期),在DSP。寫信號few的上升沿處鎖存數據線fdb7來的信號,并將其送到adb7引腳上,延時到第五個時鐘周期把adb7變為高阻狀態,寫操作結束。 5 結 語 本文提出的非多路復用總線到多路復用總線轉換橋采用了Xilinx公司的CPLD芯片X(295144-15-PQl00,并使用該公司開發集成環境Fundation F3.1i,將其集成為一塊專用芯片。實現了DSP微處理器TM320F206與CAN控制器SJAl000連接,通過大量的實驗測試,此轉換橋工作非常穩定,現已應用到電力網絡饋線遠程終端裝置(FTU)中。 |