專利名稱:微處理器和can控制器的接口方法
技術(shù)領(lǐng)域:
本發(fā)明涉及芯片接口技術(shù)領(lǐng)域,具體地涉及微處理器和CAN控制器的接口方法。
CAN網(wǎng)(CONTROLLER AREA NETWORK)是一種新型的串行現(xiàn)場(chǎng)總線,這種總線的配置靈活,支持多個(gè)主站,各主站根據(jù)優(yōu)先權(quán)訪問(wèn)總線,有無(wú)破壞性的基于優(yōu)先權(quán)的總線仲裁方案,傳輸速度最快能達(dá)1MBIT/S,容錯(cuò)性能好,抗干擾能力強(qiáng),很適合于工業(yè)控制領(lǐng)域,是一種很有前途的現(xiàn)場(chǎng)總線。SJA1000是PHILIP公司生產(chǎn)的CAN控制器,該控制器支持CAN2.0B協(xié)議、有很強(qiáng)的報(bào)文過(guò)濾功能、控制靈活方便,是擴(kuò)展CAN網(wǎng)絡(luò)時(shí)很好的選擇。
7700系列微處理器(CPU)是日本三菱公司生產(chǎn)的16位高性能單片機(jī),這個(gè)系列的CPU內(nèi)含有豐富的資源,有定時(shí)器/計(jì)數(shù)器,A/D轉(zhuǎn)換器,含有片內(nèi)RAM和EPROM(FLASH),I/O口線多,處理速度快,選用24MHZ晶振時(shí),最短指令執(zhí)行時(shí)間是166ns。在工業(yè)控制領(lǐng)域的用途很廣。
因此,設(shè)計(jì)這兩種芯片之間的簡(jiǎn)單有效的接口有很現(xiàn)實(shí)的意義。
SJA1000與CPU的接口信號(hào)主要有時(shí)分復(fù)用的地址/數(shù)據(jù)線共8條,地址鎖存信號(hào)線,讀寫(xiě)控制線,片選信號(hào)線。7700系列CPU(以M37733為例)有24條地址線,其中最高8位的地址線可以時(shí)分復(fù)用為數(shù)據(jù)線。正因?yàn)镸37733是高8位地址線時(shí)分復(fù)用,所以和SJA1000以總線相連時(shí),很難構(gòu)成正確的片選信號(hào),所以通常認(rèn)為它們不能以總線相連。
最常見(jiàn)的連接方式是用CPU的I/O口,這種方式實(shí)際上是用I/O口模擬總線,工作原理如下當(dāng)CPU從SJA1000的某個(gè)存儲(chǔ)器讀數(shù)時(shí),先產(chǎn)生片選信號(hào),選通SJA1000,CPU把P7口置為輸出方式,輸出存儲(chǔ)器的地址,產(chǎn)生一個(gè)地址鎖存信號(hào)到SJA1000的ALE,然后改P7口為輸入方式,產(chǎn)生一個(gè)有效的讀信號(hào),這時(shí)P7口就是所需要的數(shù)值。往SJA1000中寫(xiě)數(shù)的過(guò)程也大致相同,從以上可以看出,一次簡(jiǎn)單的讀寫(xiě)操作處理起來(lái)很復(fù)雜。實(shí)際上,這也很費(fèi)時(shí)間,據(jù)實(shí)驗(yàn)測(cè)量,寫(xiě)一個(gè)字節(jié)的時(shí)間大約是16us,這樣寫(xiě)一幀報(bào)文的時(shí)間為0.17ms。如果把CAN的通訊速率設(shè)成1MBIT/S,一幀報(bào)文在網(wǎng)上的傳輸時(shí)間大約是0.11ms。
由此可以看到,傳統(tǒng)的接口方式存在如下的缺點(diǎn)1.寫(xiě)一幀報(bào)文的時(shí)間比傳一幀報(bào)文的時(shí)間還要長(zhǎng),以致CPU和CAN控制器之間的接口已經(jīng)成為通訊的瓶頸,嚴(yán)重的降低了通訊的速度。2.CPU要花大量的時(shí)間來(lái)處理通訊,這樣在一些要求實(shí)時(shí)性要求高的場(chǎng)合這種應(yīng)用方式受到了很大的限制。3.這種接口方式占用了CPU芯片大量的I/O口,不利于系統(tǒng)的進(jìn)一步擴(kuò)展。
本發(fā)明的目的是提供一種微處理器和CAN控制器之間簡(jiǎn)單可靠的接口方法,使這兩種芯片都能發(fā)揮各自的優(yōu)勢(shì),使CPU盡可能少處理通訊的工作,使CAN傳輸速度快的優(yōu)勢(shì)能盡可能充分的發(fā)揮。
本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的,通過(guò)對(duì)SJA1000的深入研究,發(fā)現(xiàn)SJA1000存儲(chǔ)器的地址范圍是00-7FH,并且最高位地址線無(wú)效,也就是說(shuō)對(duì)SJA1000來(lái)說(shuō),00H和80H表示同一個(gè)存儲(chǔ)器的地址,依次類推,n和n+80H表示同一個(gè)存儲(chǔ)器的地址。依這個(gè)思路,我們可以借助P2.7(時(shí)分復(fù)用的地址、數(shù)據(jù)線的最高位)來(lái)尋址SJA1000,即把P2.7設(shè)置成片選信號(hào),P2.0-P2.6設(shè)置成地址信號(hào)用以尋址SJA1000的片內(nèi)存儲(chǔ)器。所以SJA1000的00號(hào)存儲(chǔ)器的絕對(duì)地址是80××××H(×表示可以是任何數(shù)值),SJA1000的01號(hào)存儲(chǔ)器的絕對(duì)地址是81××××H,SJA1000的最后一個(gè)存儲(chǔ)器的地址是OFF××××H。
一種微處理器M37733芯片和一片CAN控制器SJA1000連接方法是用微處理器M37733芯片的P2.7(時(shí)分復(fù)用的地址、數(shù)據(jù)線的最高位)作為SJA1000的片選信號(hào),把CPU地P2.0-P2.7依次接到SJA1000的D0-D7,同時(shí)依次連好讀信號(hào)R,寫(xiě)信號(hào)W,地址鎖存信號(hào)ALE;P2.7經(jīng)過(guò)一個(gè)非門(mén)與SJA1000的CS連接,SJA1000的00號(hào)存儲(chǔ)器的絕對(duì)地址是80××××H(×表示可以是任何數(shù)值),SJA1000的10H號(hào)存儲(chǔ)單元的地址是90××××H;從SJA1000的00號(hào)存儲(chǔ)器讀數(shù)時(shí),用一條指令LDA A,80××××H就可以了;當(dāng)往SJA1000的10H號(hào)存儲(chǔ)器寫(xiě)數(shù)時(shí),用指令STA A,90××××H。
7700系列CPU在用于存儲(chǔ)器擴(kuò)展方式時(shí),最大的尋址范圍是OFFFFFFH,所以上述的地址仍然在CPU可尋址的范圍內(nèi)。
用這種方法,可以稍加改動(dòng)就用在用一個(gè)CPU帶多個(gè)CAN網(wǎng)的場(chǎng)合,在使用時(shí),把P2.7和P0或P1口的部分地址線經(jīng)邏輯組合形成片選信號(hào)即可。
本發(fā)明接口方法的優(yōu)點(diǎn)是接口簡(jiǎn)單,編程簡(jiǎn)單方便,使CPU從繁重的干預(yù)通訊的任務(wù)中解脫出來(lái),能充分發(fā)揮CAN傳輸速度快的優(yōu)點(diǎn),節(jié)省了大量的I/O口,容易擴(kuò)展到用一個(gè)CPU芯片控制多個(gè)CAN控制器的場(chǎng)合。
下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式
作進(jìn)一步詳細(xì)的描述。
圖1是現(xiàn)有技術(shù)的接口方法的示意圖;圖2是本發(fā)明的接口方法的示意圖;圖3是本發(fā)明的另一個(gè)實(shí)施例的接口方法的示意圖。
圖1是現(xiàn)有技術(shù)的接口方法的示意圖。最常見(jiàn)的連接方式是用CPU的I/O口。這種方式實(shí)際上是用I/O口模擬總線,工作原理如下當(dāng)CPU從SJA1000的某個(gè)存儲(chǔ)器讀數(shù)時(shí),先產(chǎn)生片選信號(hào),選通SJA1000,CPU把P7口置為輸出方式,輸出存儲(chǔ)器的地址,產(chǎn)生一個(gè)地址鎖存信號(hào)到SJA1000的ALE,然后改P7口為輸入方式,產(chǎn)生一個(gè)有效的讀信號(hào),這時(shí)P7口就是所需要的數(shù)值。往SJA1000中寫(xiě)數(shù)的過(guò)程也大致相同,從以上可以看出,一次簡(jiǎn)單的讀寫(xiě)操作處理起來(lái)很復(fù)雜。實(shí)際上,這也很費(fèi)時(shí)間,據(jù)實(shí)驗(yàn)測(cè)量,寫(xiě)一個(gè)字節(jié)的時(shí)間大約是16us,這樣寫(xiě)一幀報(bào)文的時(shí)間為0.17ms。如果把CAN的通訊速率設(shè)成1MBIT/S,一幀報(bào)文在網(wǎng)上的傳輸時(shí)間大約是0.11ms。
圖2是本發(fā)明的接口方法的示意圖;7700系列CPU和CAN控制器SJA1000的接口實(shí)例列舉如下,CPU以M37733為例。M37733芯片和一片SJA1000連接方法是用P2.7(時(shí)分復(fù)用的地址、數(shù)據(jù)線的最高位)作為SJA1000的片選信號(hào),把CPU地P2.0-P2.7依次接到SJA1000的D0-D7,同時(shí)依次連好讀信號(hào)R,寫(xiě)信號(hào)W,地址鎖存信號(hào)ALE;SJA1000的00號(hào)存儲(chǔ)器的絕對(duì)地址是80××××H(×表示可以是任何數(shù)值),SJA1000的10H號(hào)存儲(chǔ)單元的地址是90××××H;從SJA1000的00號(hào)存儲(chǔ)器讀數(shù)時(shí),用一條指令LDA A,80××××H就可以了;當(dāng)往SJA1000的10H號(hào)存儲(chǔ)器寫(xiě)數(shù)時(shí),用指令STA A,90××××H。
圖3是本發(fā)明的另一個(gè)實(shí)施例的接口方法的示意圖。當(dāng)需要用一個(gè)CPU芯片控制兩個(gè)CAN控制器時(shí),在圖2的基礎(chǔ)上稍加修改即可,如附圖3所示,第一片SJA1000的片選信號(hào)由CPU得地址線P2.7和P1.7共同產(chǎn)生。所以第一片SJA1000的00號(hào)存儲(chǔ)器的地址是808×××H,01號(hào)存儲(chǔ)器的地址是818×××H;第二片SJA1000的片選信號(hào)由CPU得地址線P2.7和P1.6共同產(chǎn)生,所以第二片SJA1000的00號(hào)存儲(chǔ)器的地址是804×××H,01號(hào)存儲(chǔ)器的地址是814×××H,其它存儲(chǔ)器的地址可依次類推。以這種連接方式,CPU對(duì)SJA1000內(nèi)存儲(chǔ)器的讀寫(xiě)操作用一條指令就可以實(shí)現(xiàn)。
當(dāng)需要用用一個(gè)CPU芯片控制多個(gè)CAN控制器時(shí),接口和尋址方法基本相同。
權(quán)利要求
1.一種微處理器M37733芯片和CAN控制器SJA1000連接方法,其特征在于用微處理器M37733芯片的P2.7(時(shí)分復(fù)用的地址、數(shù)據(jù)線的最高位)作為SJA1000的片選信號(hào),把CPU地P2.0-P2.7依次接到SJA1000的D0-D7,同時(shí)依次連好讀信號(hào)R,寫(xiě)信號(hào)W,地址鎖存信號(hào)ALE;P2.7經(jīng)過(guò)一個(gè)非門(mén)與SJA1000的CS連接,SJA1000的00號(hào)存儲(chǔ)器的絕對(duì)地址是80××××H(×表示可以是任何數(shù)值),SJA1000的10H號(hào)存儲(chǔ)單元的地址是90××××H;從SJA1000的00號(hào)存儲(chǔ)器讀數(shù)時(shí),用一條指令LDA A,80××××H就可以了;當(dāng)往SJA1000的10H號(hào)存儲(chǔ)器寫(xiě)數(shù)時(shí),用指令STA A,90××××H。
2.根據(jù)權(quán)利要求1的方法,其特征在于所述的7700系列CPU在用于存儲(chǔ)器擴(kuò)展方式時(shí),最大的尋址范圍是OFFFFFFH,所以上述的地址仍然在CPU可尋址的范圍內(nèi)。
3.根據(jù)權(quán)利要求2的方法,其特征在于所述的7700系列CPU帶多個(gè)CAN網(wǎng)的場(chǎng)合時(shí),把P2.7和P0或P1口的部分地址線經(jīng)邏輯組合形成片選信號(hào)即可。
全文摘要
本發(fā)明提供一種微處理器和CAN控制器之間的接口方法,本發(fā)明的技術(shù)方案是用微處理器M37733芯片的P2.7作為SJA1000的片選信號(hào),把CPU地P2.0-P2.7依次接到SJA1000的D0-D7,同時(shí)依次連好讀信號(hào)R,寫(xiě)信號(hào)W,地址鎖存信號(hào)ALE:P2.7經(jīng)過(guò)一個(gè)非門(mén)與SJA1000的CS連接,借助P2.7尋址SJA1000,即把P2.7設(shè)置成片選信號(hào),P2.0-P2.6設(shè)置成地址信號(hào)用以尋址SJA1000的片內(nèi)存儲(chǔ)器。其優(yōu)點(diǎn)是接口簡(jiǎn)單,編程簡(jiǎn)單方便,減少CPU通訊任務(wù),發(fā)揮CAN傳輸速度快的優(yōu)點(diǎn),節(jié)省大量的I/O口,容易擴(kuò)展到用一個(gè)CPU芯片控制多個(gè)CAN控制器的場(chǎng)合。
文檔編號(hào)G06F13/00GK1300984SQ0110393
公開(kāi)日2001年6月27日 申請(qǐng)日期2001年2月15日 優(yōu)先權(quán)日2001年2月15日
發(fā)明者肖海華, 張忠理, 劉建飛 申請(qǐng)人:北京哈德威四方保護(hù)與控制設(shè)備有限公司