本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種多個處理器間CAN口互連的驅(qū)動電路。
背景技術(shù):
在控制器的電路設(shè)計時,有多個處理器需要協(xié)同工作,它們之間交換數(shù)據(jù)可以通過SPI、串口或I2C或其它通訊口完成工作,隨著科技的發(fā)展,多數(shù)處理器開始提供CAN或其它通訊接口的支持,CAN是現(xiàn)場總線的一種,支持分布式控制和實時控制,具有傳輸字節(jié)短、速度快、容錯性好、數(shù)據(jù)傳輸可靠等優(yōu)點。為了多個處理器能方便、準(zhǔn)確的完成數(shù)據(jù)交換,由CAN-BUS鏈路層協(xié)議有著嚴(yán)格的數(shù)據(jù)錯誤機(jī)制以及多主的工作模式,可使多個處理器方便的完成數(shù)據(jù)交換,為用戶省去了繁雜的校驗工作。
目前傳統(tǒng)的多個處理器在電路設(shè)計連接時,需要每個處理器的CAN口上都要加一個CAN驅(qū)動芯片,在進(jìn)行連接,由于多個驅(qū)動芯片都是在電平轉(zhuǎn)換工作,不但使的電路板功耗加大、EMC增加,同時也存在著阻抗匹配等問題。
技術(shù)實現(xiàn)要素:
針對以上問題,本發(fā)明專利目的在于設(shè)計了一種多個處理器間 CAN口互連的驅(qū)動電路,以CPLD為載體的驅(qū)動電路,實現(xiàn)多個處理器的CAN口互連,不存在信號及電平的轉(zhuǎn)換,有著很好的兼容性、穩(wěn)定性和可靠性。本發(fā)明技術(shù)方案如下:
一種多個處理器間CAN口互連的驅(qū)動電路,包括:
多個處理器模塊,每個處理器模塊都帶有CAN通訊口;
CPLD驅(qū)動模塊,分別與所述多個處理器模塊的CAN通訊口連接,用于驅(qū)動所述CAN通訊口,所述CPLD驅(qū)動模塊檢測CAN通訊口輸入端TXD的顯性狀態(tài),如果TXD輸入端持續(xù)為顯性狀態(tài),則禁止本CAN通訊口的數(shù)據(jù)發(fā)送,否則允許數(shù)據(jù)發(fā)送;
振蕩電路,連接所述CPLD驅(qū)動模塊,用于產(chǎn)生固定頻率的高頻信號;
撥碼開關(guān),與所述CPLD驅(qū)動模塊的I/O口連接,用于對所述CPLD驅(qū)動模塊進(jìn)行控制。
進(jìn)一步,本發(fā)明所述振蕩電路采用晶體震蕩器。
進(jìn)一步,本發(fā)明所述處理器模塊為ARM處理器、DSP處理器或者M(jìn)CU處理器。
附圖說明
以下參照附圖對本發(fā)明實施例作進(jìn)一步說明,其中:
圖1是本發(fā)明多個處理器間CAN口互連的驅(qū)動電路的系統(tǒng)構(gòu)成圖;
圖2是本發(fā)明多個處理器間CAN口互連的驅(qū)動電路的部分電 路圖。
具體實施例
下面結(jié)合附圖和具體實施例對本發(fā)明作進(jìn)一步的詳細(xì)說明。
本發(fā)明提出了一種多個處理器間CAN口互連的驅(qū)動電路,以CPLD驅(qū)動模塊為載體的驅(qū)動電路,編程采用Verilog語言對CPLD驅(qū)動模塊編程,實現(xiàn)多個處理器的CAN口互連,硬件編程實現(xiàn)了CAN驅(qū)動芯片功能,不存在信號及電平的轉(zhuǎn)換,因此本發(fā)明有著很好的兼容性、穩(wěn)定性和可靠性。
請參閱圖1是本發(fā)明多個處理器間CAN口互連的驅(qū)動電路的系統(tǒng)構(gòu)成圖,包括:
多個處理器模塊,每個處理器模塊都帶有CAN通訊口;
CPLD驅(qū)動模塊,分別與所述多個處理器模塊的CAN通訊口連接,用于驅(qū)動所述CAN通訊口,所述CPLD驅(qū)動模塊檢測CAN通訊口輸入端TXD的顯性狀態(tài),如果TXD輸入端持續(xù)為顯性狀態(tài),則禁止本CAN通訊口的數(shù)據(jù)發(fā)送,否則允許數(shù)據(jù)發(fā)送;
振蕩電路,連接所述CPLD驅(qū)動模塊,用于產(chǎn)生固定頻率的高頻信號,振蕩電路采用晶體震蕩器;
撥碼開關(guān),與所述CPLD驅(qū)動模塊的I/O口連接,用于對所述CPLD驅(qū)動模塊進(jìn)行控制。
請參閱圖2是本發(fā)明多個處理器間CAN口互連的驅(qū)動電路的部分電路圖,處理器為ARM、DSP、MCU等處理器,主處理器的I/O 使能、復(fù)位引腳與CPLD驅(qū)動模塊的使能、復(fù)位引腳連接,各個處理器的CAN通訊口分別與CPLD驅(qū)動模塊CAN1、CAN2、CAN3口相連,DIP8撥碼開關(guān)與CPLD驅(qū)動模塊的I/O口連接。
使用XILINX的開發(fā)工具Xilinx ISE Design Suite 12.4對CPLD驅(qū)動模塊編程,參照ISO-11898標(biāo)準(zhǔn)定義的CAN驅(qū)動芯片原理,根據(jù)規(guī)約CAN總線有兩個狀態(tài):顯性狀態(tài)和隱性狀態(tài),顯性狀態(tài)和隱性狀態(tài)在這里對應(yīng)于處理器CAN通訊口的RXD、TXD引腳的低電平和高電平,但是,一個由其它的處理器的CAN通訊口觸發(fā)的顯性狀態(tài)將會改寫CAN通訊口上的隱性狀態(tài)。
CPLD驅(qū)動模塊內(nèi)模擬了多個CAN-bus驅(qū)動芯片功能,即始終保持?jǐn)?shù)據(jù)正常的接收,檢測每一個輸入端TXD的穩(wěn)定顯性,如果TXD輸入端持續(xù)低電平,那么則禁止本端口的數(shù)據(jù)發(fā)送,否則可進(jìn)行數(shù)據(jù)發(fā)送。CPLD驅(qū)動模塊的RXD與TXD的邏輯橋接,在CPLD驅(qū)動模塊內(nèi)部完成多個模擬的驅(qū)動芯片數(shù)據(jù)的交換,從而實現(xiàn)與多個處理器之間的通訊,完成數(shù)據(jù)交換工作。
以上所述本發(fā)明的具體實施方式,并不構(gòu)成對本發(fā)明保護(hù)范圍的限定。任何根據(jù)本發(fā)明的技術(shù)構(gòu)思所做出的各種其他相應(yīng)的改變與變形,均應(yīng)包含在本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。