TMS320C6416與CAN控制器的接口實(shí)現(xiàn)
1.3 TMS320C6416與SJAl000的接口設(shè)計(jì)
TMS320C6416的數(shù)據(jù)總線和地址總線是分開的。在對(duì)存儲(chǔ)器操作時(shí),地址和數(shù)據(jù)幾乎是同時(shí)出現(xiàn)的,而且系統(tǒng)采用流水線工作方式,TMS-320C6416的地址和數(shù)據(jù)總線是無法與SJAl000的AD0~AD7直接連接的,也沒有方法可以將SJAl000的RAM直接映射到TMS320C6416的存儲(chǔ)器中。因此,為了實(shí)現(xiàn)TMS320C6416與SJAl000的接口,應(yīng)將SJAl000的ALE和直接映射為TMS320C6416的兩個(gè)I/O端口??蓪JA1000的ADO~AD7直接和TMS320C6416的BED0~BED7連接。當(dāng)ALE為高電平時(shí),TMS320C6416的BED0~BED7送數(shù)據(jù)給SJAl000,表示地址值;當(dāng)ALE為低電平,而且也為低電平時(shí),TMS320C6416的BED0~BED7則和SJAl000交換數(shù)據(jù)。在這種方法中,可以利用ALE為高電平和為低電平來區(qū)分地址總線周期和數(shù)據(jù)總線周期。
圖3所示是其硬件連接方法。本文引用地址:http://2s4d.com/article/163106.htm
圖3中的PCA82C250為CAN串行鏈接I/O器件。CPLD芯片EPM7512用于產(chǎn)生相應(yīng)的控制信號(hào)并輸出給SJAl000,從而控制SJAl00O的地址和數(shù)據(jù)總線周期。
2 基于EPM7512的接口邏輯
EPM7512是AIZERA公司生產(chǎn)的復(fù)雜可編程邏輯器件(CPLD),可與AIXERA公司的QuartusII開發(fā)系統(tǒng)軟件配合,并可以100%地模仿TTL。采用EPM7512作為DSP的外部接口擴(kuò)展,可非常方便而且靈活地實(shí)現(xiàn)接口功能。
DSP處理器的地址線BEAl5經(jīng)CPLD產(chǎn)生片選信號(hào)后,可由地址線BEA15作為CAN控制器的地址和數(shù)據(jù)選擇線,并和一起產(chǎn)生SJAl000的地址鎖存信號(hào)ALE。BEAl5為l時(shí),地址有效;BEAl5為0時(shí),數(shù)據(jù)有效。
采用ModelSim仿真軟件可對(duì)接口電路進(jìn)行功能仿真,其仿真結(jié)果如圖4所示,能夠滿足SJAl000的讀寫時(shí)序要求。
3 接口電路的軟件讀寫操作
CAN控制器SJAl000的地址線和數(shù)據(jù)線可映射為DSP芯片TMS320C6416的外部程序存儲(chǔ)EMIFB的CE3區(qū)域,其在DSP控制器上的地址分別為0x6-C008000和0x6C000001。其用C語言編程的實(shí)現(xiàn)代碼如下:
#defineTXB 16
#define RXB 16
(char*) CANAS= (char*) 0x6c008000;//定義CAN控制器數(shù)據(jù)線
(char*) CANCS=(char*)0x6c000001;//定義CAN控制器地址線
//以下兩句為SJAl000的控制寄存器MOD(PeliCAN模式下地址0)賦值Ox09;
*CANAS=0;//提供CAN控制器寄存器地址
*CANCS=0x09;//提供CAN控制器寄存器數(shù)據(jù)
//以下兩句從SJAl000的狀態(tài)寄存器SR (PeliCAN模式下基地址+2)讀取數(shù)據(jù);
*CANAS=2;//提供CAN控制器寄存器地址
*SR=CANCS0xoff;//讀取CAN控制器數(shù)據(jù)。
4 結(jié)束語
本文提供了一種基于CPLD的DSP處理器TMS320C6416和CAN控制器SJAl000接口方法,該實(shí)現(xiàn)方法比傳統(tǒng)硬件邏輯門電路的實(shí)現(xiàn)方法更加方便靈活。通過對(duì)該方法的軟硬件實(shí)現(xiàn)進(jìn)行的仿真結(jié)果證明,該設(shè)計(jì)可以穩(wěn)定可靠的運(yùn)行。
評(píng)論