曹英健++李雪++陳鵬++何雨昂++張巍++苗碩
摘 要 本文提出了一種3.3VDSP TMS320F2812與5VCAN總線驅動器PCA82C250的接口方案,用較簡單的電路實現(xiàn)了電平轉換功能,并介紹了研制中元器件的選型過程及要求,給出了方案電路中各元器件參數(shù)的測定方法。該設計方案已經成功應用到了控制器與上位機的通信當中,進行了理論設計并完成了試驗驗證,試驗結果表明了其有效性和可靠性。
【關鍵詞】DSP TMS320F2812 3.3V轉5V CAN總線 接口
CAN(Controller Area Network)總線,又稱控制器局域網,是由德國Bosch公司為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議,是一種有效支持實時控制和分布式控制的串行通信網絡。CAN總線屬于現(xiàn)場總線范疇,它是一種分散式、數(shù)字化、雙向、多站點的通訊系統(tǒng),由于CAN總線具有實時性好、可靠性高、抗干擾能力強、傳輸距離遠、通訊速度快、采用短信息幀結構和多主通信方式以及可使用多種通信介質等許多優(yōu)點,非常適用于分布式控制系統(tǒng)的數(shù)據(jù)通訊,在航空、航海、汽車以及各種工業(yè)自動化控制系統(tǒng)中得到了廣泛的應用。鑒于CAN總線的以上優(yōu)點,開發(fā)一種實用可行的CAN總線通信接口電路對于民品發(fā)展是有實際意義的。
隨著CAN總線技術的迅速發(fā)展和廣泛應用,很多處理器已將CAN總線通信功能集成在芯片內部。TI公司的TMS320F2812片內就集成了CAN總線控制器,只需外接較簡單的接口電路即可實現(xiàn)CAN總線通信。本文設計了一種3.3VDSP TMS320F2812與5VCAN總線驅動器PCA82C250的接口方案,用很少的必要的元器件和較簡單的電路實現(xiàn)了電平轉換功能,并將其應用到了實際的控制器系統(tǒng)設計中,系統(tǒng)工作正常,可以進行穩(wěn)定的數(shù)據(jù)傳輸。
1 接口方案設計
設計中選用的TI的DSP TMS320F2812內部已經集成了一個CAN總線控制器,只要外接CAN總線驅動器即可實現(xiàn)和CAN總線的通信。為了與上位機5V的CAN總線PCI板卡兼容,本設計中選用的CAN總線驅動器芯片是Philips公司的PCA82C250。
TMS320F2812的I/O口的輸入輸出電壓為3.3V,而PCA82C250是一款采用5V電源供電的芯片,TMS320F2812的VOH是3.3V,而82C250的VIH要求在3.5V以上,很明顯TMS320F2812的輸出不能直接驅動82C250; 同時,82C250的VOH大于4V,而TMS320F2812的VIH最大僅為3.6V,故PCA82C250的輸出亦不能直接連到TMS320F2812,在TMS320F2812與PCA82C250接口都需要設計電平轉換電路,滿足雙方的輸入輸出電壓要求。
PCA82C250與CAN控制器的接口電路一般都采用光耦隔離器,如PCA82C250與SJA1000的接口就推薦采用高速光耦6N137進行接口,但是由于高速光耦6N137的供電與輸出均為5V,該方案只適合于CAN控制器與總線驅動器均采用5V電源的情況。TMS320F2812內集成的CAN總線控制器為3.3V供電,不能直接通過光耦隔離器與5V的CAN總線驅動器進行接口,利用光耦隔離器進行接口的方案不適用于3.3V的TMS320F2812與5V的CAN總線驅動器PCA82C250接口的情況。
針對3.3V的TMS320F2812與5V的CAN總線驅動器PCA82C250接口問題,本文設計了一種用二極管和電阻網絡實現(xiàn)TMS320F2812和PCA82C250之間3.3V-5V電平轉換接口的實現(xiàn)方案。該方案分別僅用一個電阻和一個二極管、兩個電阻組成的網絡即實現(xiàn)了3.3VDSP和5VCAN總線驅動器發(fā)送和接收支路的接口,大大簡化了電路設計,并且設計中采用高速開關二極管和電阻網絡比光耦隔離器產生的時間延遲要短,可以進行更高速率的數(shù)據(jù)傳輸。接口硬件總體設計方案如圖1所示。
其中二極管D1起升壓作用,以滿足PCA82C250對輸入高電平的要求,電阻R8、電阻R6和R7起調壓限壓作用。
CAN總線驅動器PCA82C250是驅動CAN控制器和物理總線間的接口,提供對總線的差動發(fā)送和接收功能。圖1中CANTXDA和CANRXDA分別為TMS320F2812中CAN總線控制器的發(fā)送和接收引腳,CANIO為TMS320F2812的一個GPIO口,配置為輸出模式控制82C250的工作狀態(tài)。在CANTXDA引腳上接入了一個二極管,從而使TXD電壓提升了一個二極管結電壓,以滿足PCA82C250的輸入高電平要求;同時RXD的電平經過兩個電阻的分壓輸入到DSP,使得CANRXDA引腳接收的電平可以保證在3.3V以下,確保DSP不會被燒壞。
需要特別指出的是:現(xiàn)在很多書籍和資料中類似的接口電路都存在一個錯誤,就是發(fā)送電路上所接電阻R8不是下拉到地而是接在了+5V上,經過實驗測量發(fā)現(xiàn)R8上拉到+5V,無論接入的電阻R8加多少都不能將CANTXDA的電壓降到3.3V(在本設計中選用的二極管結壓降約為0.4V,故TXD電壓應降為3.7V)。
查PCA82C250的手冊可知其引腳TXD內部已經通過電阻上拉到+5V,外部R8再上拉到+5V相當于R8與TXD內部的上拉電阻并聯(lián),只能進一步提高CANTXDA引腳的電壓,并增加流入CANTXDA引腳的電流,有燒毀DSP的危險。因此,要使CANTXDA引腳的輸入電壓降為3.3V,即TXD引腳電壓降為3.7V,R8必須如圖1所示下拉到地而不是上拉到+5V。
2 二極管選型及特性測量
在本設計中選用的二極管型號為Motorola的MUR 120,其特性參數(shù)如下:反向耐壓200V,工作和儲存溫度-65?C~+175?C,常溫25 ?C時最大正向電壓0.875V,最大反向電流2.0μA,最大反向恢復時間25ns,最大正向恢復時間25ns。endprint
為了保證二極管的完好和可用性,并對二極管的輸入輸出特性獲得清楚的認識,設計中先對二極管D進行了結電壓-電流特性測量,測量電路圖如圖2所示。
改變電阻R,可以測得不同電流時二極管D的結電壓與流過其電流的關系,即二極管D的電壓-電流特性。實際測量數(shù)據(jù)表明,當電阻R從100Ω~100KΩ變化時,二極管結電壓的變化范圍是0.53V~0.4V。
根據(jù)該二極管的最大正向恢復時間可以計算出單個二極管可以達到的最大開關頻率:
由于實際工作中二極管始終處于正向導通狀態(tài),沒有正反向的切換,所以其最大開關頻率應當大于40MHz,而CAN總線通訊的最大波特率僅為1Mbps,因此該二極管是可以滿足傳輸速度需求的。
由數(shù)據(jù)可以看出該二極管的結電壓在0.4V~0.5V間變化,在電阻較小范圍內變化時結電壓近似為一恒定值,該值約0.4V。
設計中考慮到TMS320F2812的GPIO口的輸出電壓高電平為3.3V,不滿足PCA82C250輸入高電平大于3.5V的要求,故采用二極管D進行升壓。單個二極管可以升壓0.4V左右,即可以將電壓由3.3V升高到3.7V左右,與PCA82C250輸入高電平的下限值3.5V相比余量只有0.2V左右,考慮到升壓幅度可能不夠高,擬采用雙二極管串連代替單個二極管進行電路升壓作為備用方案,因此還對雙二極管串聯(lián)進行了電壓-電流特性測量。測量電路圖如圖3所示。
改變電阻R,可以測得電流不同時二極管D1和D2串聯(lián)的結電壓與輸入電流的關系,即雙二極管D1和D2串聯(lián)的電壓-電流特性。實際測量數(shù)據(jù)表明,當電阻R從1KΩ~100KΩ變化時,雙二極管D1和D2串聯(lián)結電壓的變化范圍是1.02V~0.79V。
雙二極管串聯(lián)在進行通斷的時候,可以看作是順序動作,因此其恢復時間可以看作是單個二極管恢復時間的二倍(實際上應當小于這個數(shù)值),故雙二極管串連可以達到的最大開關頻率:
仍大于CAN總線通訊的最大波特率為1Mbps,因此雙二極管串聯(lián)的方案仍是可以滿足通訊速度需求的。
由數(shù)據(jù)可以看出雙二極管串聯(lián)結電壓在0.8V~1V間變化,在電阻較小范圍內變化時結電壓近似為一恒定值,該值約0.8V。
可見兩個二極管串連使用可將電壓提升0.8V左右,如果調定CANTXDA處電壓為3.3V,則PCA82C250的輸入電壓TXD可以達到4V以上,可以保證TXD的輸入高電平有較大裕量,但是兩個二極管串連開關時間會加長,數(shù)據(jù)傳輸速度會受一定影響。
單個二極管的結壓降約為0.4V,因此粗略估計當整定CANTXDA輸出高為3.3V時,PCA82C250的輸入端可以升壓至3.7V左右;而當CANTXDA輸出為低時,CANTXDA電壓幾乎為零,此時PCA82C250的TXD端電壓為一個結壓降0.4V左右。查PCA82C250的手冊可知其輸入高電平VIN的范圍是[0.7Vcc,Vcc+0.3]V,即[3.5,5.3]V,輸入為低電平的VIN電壓范圍是[-0.3, 0.3Vcc],即[-0.3, 1.5]V。因此,單個二極管可以滿足設計要求,方案可行。
如果要進一步提高PCA82C250的輸入電壓,可以兩個二極管串連使用,此時當整定CANTXDA輸出高為3.3V時,PCA82C250的輸入端可以升壓至4V左右;而當CANTXDA輸出為低時,此時PCA82C250的TXD端輸入電壓為兩個結壓降0.8V左右,仍然滿足要求,只是兩個二極管串連以后時間延遲會加長,通信速度會受到一定限制。
本設計中考慮到電路板設計的時候只留了一個二極管的安裝位置,為了安裝方便可靠,最終確定選用單個二極管進行升壓。為了確保系統(tǒng)可以正常工作,在后面的工作中進行了實際輸入余量測量,主要對PCA82C250的TXD引腳的輸入高電平的余量進行了測量和驗證。
3 電路接口參數(shù)測定
電阻測量確定分兩部分進行,一部分工作是測量調整發(fā)送支路的電阻R8,使DSP的發(fā)送端CANTXDA引腳高低電平都能滿足其電壓要求的同時,保證其輸出高電平和低電平時均能滿足TXD輸入的電壓要求;另一部分工作是測量調整接收支路的電阻R6和R7,保證PCA82C250的接收端RXD輸出高低電平時,都能滿足DSP接收引腳CANRXDA的輸入電平要求。
查TMS320F2812和PCA82C250手冊可以確定其輸入輸出電壓范圍如表1和2所示。
PCA82C250采用的供電電壓VCC為5V,因此表中各電壓值為0.7VCC=3.5V,VCC+0.3=5.3V,0.3 VCC=1.5V。
3.1 發(fā)送支路電阻測定
查TMS320F2812的手冊,可知CANTXDA和CANRXDA兩引腳在DSP內部都已用電阻上拉,上拉電阻設為RL。從PCA82C250手冊中可以查出其內部引腳配置原理圖,將其與外部電路圖都畫出來,有助于更好地研究該接口電路,可以在電阻值的測定實驗中起一定指導作用。發(fā)送支路電阻測定的電路圖如圖4所示。
圖4中點畫線框內分別表示TMS320F2812和PCA82C250芯片內部的電路,將芯片內部和外部的電路都畫出來便于認識整個電路并進行理論分析和計算。
為了測定電阻R8的值,試驗中在其位置上接了一個變阻箱,同時用電壓表測量U1點電壓值,調節(jié)變阻箱R8的阻值,使U1點電壓值變?yōu)?.3V,并保證此時二極管已經導通,測得此時電阻R8的值為28KΩ。將電壓表移到TXD測量此時TXD輸入端的電壓U2的值,測得此時U2約為3.65V>3.5V,滿足PCA82C250輸入高電平的要求。
測定驗證CANTXDA輸出為低電平時,TXD輸入電平滿足PCA82C250輸入為低電平的要求。電路板接上仿真器與上位機相連,在程序中將CANTXDA引腳設置為GPIO輸出引腳,并將其置為低電平狀態(tài),用電壓表測量U1和U2兩點電壓,測得U1=0,U2=0.44V<1.5V,滿足PCA82C250輸入為低電平的要求。endprint
值得注意的是:PCA82C250的CANIO控制端是否使能,其TXD引腳輸入電平略有不同,PCA82C250處于正常工作狀態(tài)時TXD引腳輸入電平略低于上電后的等待狀態(tài),如在本設計確定的電阻參數(shù)下,PCA82C250上電后未使能時CANTXDA引腳電壓U1=3.317V,使能后正常工作時CANTXDA引腳電壓U1=3.297V,故在調節(jié)變阻箱R8的阻值測定電阻R8的過程中應當下載程序到電路板(RAM中),并在DSP程序中將CANIO控制端置低使能PCA82C250,只有這樣測定的電阻R8才是正常工作時需要的電阻值。
3.2 接收支路電阻測定
根據(jù)PCA82C250手冊中給出的CANRXDA內部引腳配置原理圖,將其與外部電路圖都畫出來,有利于更好地研究該電路,從理論上分析接口電路,并在電阻測定實驗中起一定理論指導作用。接收支路電阻測定的電路圖如圖5所示。
在圖5中,Q2和Q3的中間基極(即2腳)連接線與水平線交叉但沒有相接,其余交叉的連線都是接在一起的。接收支路電阻的測定過程較復雜,需要權衡高低電平時各方面的影響,綜合考慮高低兩個電平的電路狀態(tài)選擇一對合適的電阻值。
PCA82C250的控制端是否使能,即PCA82C250是否處于正常工作狀態(tài),接收電路高電平是不同的,正常工作時RXD引腳高電平要高于等待狀態(tài)時的高電平,因此測定電阻R6和R7的值,必須在將PCA82C250的控制端使能的情況下進行。由于本設計中用GPIO引腳控制PCA82C250的控制端,因此在測定電阻時要先準備好軟件的狀態(tài),將CANIO置低,并使CANRXDA工作在CAN狀態(tài)。
經測量,PCA82C250的RXD端的輸出不是理想的5V和地輸出,而是有特定值的, PCA82C250正常工作時,RXD輸出端的高電平為4V,低電平為0.5V。電阻R6和R7組成的電阻網絡要實現(xiàn)的功能是RXD輸出高電平4V時,CANRXDA引腳輸入電壓不高于3.3V;RXD輸出為低電平0.5V時,CANRXDA引腳輸入電壓不高于其低電平輸入上限0.8V。
當RXD輸出高電平4V時,其輸出為晶體管輸出,相當于一個電壓源,只要R6和R7滿足一定的比例關系,就可以將CANRXDA的輸入電壓U1調整到3.3V,其余0.7V電壓要降在R7上,故R7的阻值不能太?。划擱XD輸出為低電平0.5V時,由于引腳CANRXDA在TMS320F2812內部是通過電阻上拉的,因此存在一個上拉電阻RL到3.3V,電流分兩條支路流過R6和R7,在R6和R7上產生壓降,要保證CANRXDA的輸入電壓不高于輸入為低電平最大值0.8V,R7上產生的壓降不能大于0.3V,因此R7阻值不能過大。
經過原理分析和實驗測量,R7阻值的選擇是本設計的關鍵,要保證高低電平時電路都能正常工作,R7阻值既不能太大也不能太小。經過測量選定R7阻值為1KΩ,R6接一個變阻箱,用電壓表測量CANRXDA引腳電壓U1,調節(jié)變阻箱的阻值使CANRXDA引腳電壓U1變?yōu)?.3V,由此得出R6的阻值。實際測定R6=3 KΩ。
在如上測得的電阻參數(shù)下,PCA82C250上電后處于等待狀態(tài)時,CANRXDA引腳的高電平電壓為2.023V;PCA82C250使能后處于正常工作狀態(tài)時,PCA82C250引腳的高電平電壓為3.212V。原因在于PCA82C250未使能時,CANRXDA內部相當于通過一個電阻上拉到+5V電源,CANRXDA引腳的高電平電壓為內部上拉電阻與外接電阻分壓的結果;PCA82C250使能后,CANRXDA內部相當于通過三極管上拉到+5V電源,三極管采用電壓反饋,即CANRXDA引腳輸出相當于一個恒壓源。
測量當R7=1KΩ,R6=3KΩ時,當RXD輸出為低電平0.5V時輸入CANRXDA引腳的電壓能否滿足低電平的要求。由于只有當CAN總線狀態(tài)發(fā)生變化,接收端接收到數(shù)據(jù)時,PCA82C250的接收端輸出引腳RXD才能夠在傳送數(shù)據(jù)的過程中有低電平出現(xiàn),所以測量試驗中在DSP執(zhí)行的程序中加入用CAN總線發(fā)送端向總線發(fā)送數(shù)據(jù)的代碼,讓DSP的CAN控制器不斷發(fā)送數(shù)據(jù),用示波器觀察和監(jiān)視DSP接收端CANRXDA引腳的電壓波形,從示波器上測量低電平電壓值約為560 mV<0.8V,故該組電阻值可以滿足CANRXDA引腳輸入為低電平的要求。
綜上,R7=1KΩ,R6=3KΩ能夠滿足接收支路高低電平轉換的要求,可以保證CAN總線電路正常工作。
4 輸入電平余量測量
為了保證電路可以穩(wěn)定可靠地工作,本設計對電路進行了輸入輸出電平余量測量,測量的目的是對該數(shù)字電路中元器件對高低電平的辨別能力有所了解,保證留有足夠的余量,使CAN總線通訊正常。余量測量兩步進行:第一步用實際值與手冊給出的最大(或最?。┲迪啾容^,如果余量較大,可以認為電路可以正常工作,不用進行實測;如果余量較小,測量實際的閾值,得出針對該具體元件的余量,如果余量較大,可以應用,若余量仍較小,則需對電路進行一定的改進,盡量增加輸入輸出余量。
發(fā)送支路的高電平余量3.65V-3.5V=0.15V,低電平余量1.5V-0.45V=1.05V,該兩個電平為PCA82C250的輸入電平;接收支路的高電平余量3.3V-2V=1.3V,低電平余量0.8V-0.56V=0.24V,該兩個電平為TMS320F2812的輸入電平。
根據(jù)以上分析可知,發(fā)送支路的高電平余量和接收支路的低電平余量較小,僅為0.15V和0.24V,又由于接收支路PCA82C250的輸出RXD的低電平即約為0.5V,與DSP輸入的低電平最大值之差只有0.3V,改進的余地不大,因此著重進行了發(fā)送支路的高電平余量的測量。
測量方法如下:
按照圖4連接電路,用電壓表測量PCA82C250的輸入引腳TXD電壓U2,同時用示波器監(jiān)測CAN總線CANH和CANL之間的差分電壓。endprint
在圖4 R8的基礎上逐漸減小變阻箱阻值,同時注意示波器上的圖線變化,當變阻箱的阻值減小到某一值時,示波器的圖線由0V跳變到2V以上的某一正值,說明CAN總線狀態(tài)由隱性位跳變?yōu)轱@性位。
記錄此時電壓表測量的PCA82C250的輸入引腳TXD電壓U2的值,該狀態(tài)為TXD輸入高和低的臨界狀態(tài),低于該狀態(tài)電壓U2的值PCA82C250將認為是低電平,并且高低電平應當盡量遠離該閾值。實際測量中測得的U2的閾值電壓為2.4V,因此實測的PCA82C250的TXD高電平輸入余量為3.65V-2.4V=1.25V,比理論上算出的余量要大的多,故該電路可以保證正常工作。
5 通信效果測試
為了檢驗CAN總線接口的通信效果,在設計中進行了控制器通過CAN總線接口與上位機CAN接口卡的通信效果及波形測試。
測試試驗中,在上位機CAN接口卡的通信軟件上每1ms發(fā)送一個8字節(jié)數(shù)據(jù)包,軟件自動記錄發(fā)送數(shù)據(jù)包個數(shù),并在控制器上記錄收到數(shù)據(jù)包的數(shù)量及內容。試驗中數(shù)據(jù)包發(fā)送-停止交替進行,以測試開始發(fā)送時的可靠性,共發(fā)送了10400個數(shù)據(jù)包,收到的數(shù)據(jù)包個數(shù)及內容與發(fā)送的數(shù)據(jù)包相同,未出現(xiàn)數(shù)據(jù)包丟失和出錯的現(xiàn)象,證明系統(tǒng)可以長時間較可靠地工作,接口穩(wěn)定可以滿足系統(tǒng)的通信需要,達到了設計的既定目的。
試驗中還記錄了波特率為50kbps時,上位機與控制器通過CAN總線接口通信的波形,以對硬件電氣接口進行評估測試。
用示波器測得發(fā)送支路電平CANTXDA引腳與地之間電壓低電平為240 mV,高電平為3.40V;CANH與CANL之間隱性位電壓為120 mV,顯性位電壓為2.90V。測得接收支路電平CANTXDA引腳與地之間電壓低電平為580mV,高電平為3.24V;CANH與CANL之間隱性位電壓為120mV,顯性位電壓為2.90V。
通過示波器對CAN總線通信電平的測量結果也可以清楚看出,該接口電路的輸入輸出電平是滿足TMS320F2812和PCA82C250要求的。
6 結束語
本文提出了一種由二極管和電阻網絡構成的3.3V DSP TMS320F2812和5V CAN總線驅動器PCA82C250的接口方案,用較簡單的電路實現(xiàn)了電平轉換功能,并給出了方案中各元器件參數(shù)的測定方法。該設計方案已經成功應用到了控制器與上位機的通信當中,經測試未出現(xiàn)誤碼和丟數(shù)據(jù)包的情況,實驗結果表明了其有效性和實用性。
該方案的優(yōu)點在于做到了電路最簡化,用最少的元器件實現(xiàn)了電平轉換功能,節(jié)約了電路板空間,并能保證工作穩(wěn)妥可靠;不足之處在于用二極管和電阻分壓網絡實現(xiàn)的電平轉換CAN總線驅動器與電路板是共地的,不能實現(xiàn)電源的隔離,總線上的電磁干擾容易影響到整個電路,另外,此接口電路發(fā)送與接收電氣直接相連,通信抗干擾性較差,較易受周圍電路的影響。
參考文獻
[1]史久根,張培仁,陳真勇.CAN現(xiàn)場總線系統(tǒng)設計技術[M].北京:國防工業(yè)出版社,2004(10).
[2]饒運濤,鄒繼軍,鄭勇蕓.現(xiàn)場總線CAN原理與應用技術[M].北京:北京航空航天大學出版社,2003(06).
[3]蘇奎峰,呂強,耿慶鋒,陳圣儉.TMS320F2812原理與開發(fā)[M].北京:電子工業(yè)出版社,2005(04).
[4]PCA82C250 CAN Controller Interface Datasheet[Z].Netherlands:Philips Corp.,2000.1
[5]TMS320F2810,TMS320F2811,TMS320F2812,TMS320C2810,TMS320C2811,TMS320C2812 Digital Signal Processor Data Manual[Z].Texas:Texas Instruments Corp.,2005(10).
作者簡介
曹英?。?982-),男,河北省人。高級工程師,自動化專業(yè)碩士,現(xiàn)從事控制器、電機驅動器等電力電子產品研發(fā),長于電子產品可靠性設計與故障模式探究。
作者單位
北京精密機電控制設備研究所 北京市 100076endprint