CAN/RS 232接口卡的設(shè)計(jì)與實(shí)現(xiàn)
摘要:詳細(xì)敘述了一種利用AT89S51單片機(jī)和SJAl000總線控制器的CAN總線與RS 232接口卡的設(shè)計(jì)和實(shí)現(xiàn)方法;通過對(duì)串行通信協(xié)議的加強(qiáng),設(shè)計(jì)了一種同步的串行通信協(xié)議。該接口卡可以方便地建立起計(jì)算機(jī)與CAN總線之間的通信,能夠使CAN總線的設(shè)計(jì)者方便地觀察總線的運(yùn)行情況和各個(gè)節(jié)點(diǎn)所發(fā)送的數(shù)據(jù)。實(shí)際運(yùn)行證實(shí)了其可靠性和易用性。
關(guān)鍵詞:CAN總線;RS 232;串行通信協(xié)議;總線控制器
控制器局域網(wǎng)(Controller Area Network,CAN)屬于現(xiàn)場總線的范疇,其總線規(guī)范已被ISO國際標(biāo)準(zhǔn)化組織制定為國際標(biāo)準(zhǔn),并被公認(rèn)為是最有前途的現(xiàn)場總線之一。CAN總線廣泛應(yīng)用于控制系統(tǒng)中的各檢測和執(zhí)行機(jī)構(gòu)之間的數(shù)據(jù)通信。因?yàn)镃AN總線數(shù)據(jù)的傳輸和處理都由節(jié)點(diǎn)的單片機(jī)完成。這樣就使設(shè)計(jì)者和觀察者沒有辦法以比較直觀的方式掌握總線的運(yùn)行情況。現(xiàn)在市場上主要有兩種CAN的接口卡,使用PCI總線和使用USB接口。前者具有傳輸速度快的特點(diǎn),但卻要占用一個(gè)計(jì)算機(jī)的插槽,并且設(shè)計(jì)上十分困難;后者的傳輸速度也很快,且價(jià)格較便宜,但要花費(fèi)很大的精力進(jìn)行USB的固件開發(fā)和維護(hù),并要編寫復(fù)雜的驅(qū)動(dòng)程序。根據(jù)此,需要設(shè)計(jì)一種能夠方便讀取CAN總線數(shù)據(jù),并通過RS 232串行口將數(shù)據(jù)送給PC機(jī)處理和顯示的接口卡;此外還需對(duì)其串行傳輸?shù)膮f(xié)議進(jìn)行加強(qiáng),以使能有效地降低傳輸過程中出現(xiàn)的錯(cuò)誤。
1 接口卡的硬件設(shè)計(jì)
硬件部分主要包括主控制器、CAN總線控制器、CAN總線收發(fā)器以及與計(jì)算機(jī)的RS 232通信接口芯片等。系統(tǒng)的總體結(jié)構(gòu)如圖1所示。主控制器通過CAN總線接口接收和緩存數(shù)據(jù)。根據(jù)PC機(jī)的命令進(jìn)行選擇性的數(shù)據(jù)傳輸。
1.1 與CAN總線接口
如圖2所示,接口卡的控制器選用Atmel公司的AT89S51,該單片機(jī)的引腳和功能與8051兼容,并且內(nèi)部含有4 KB的FLASH ROM,支持在系統(tǒng)編程(ISP),這樣可以很方便地將應(yīng)用程序下載到單片機(jī)里。
評(píng)論