CAN轉(zhuǎn)RS232接口卡的設(shè)計(jì)方案
控制器局域網(wǎng)(Controller Area Network,CAN)屬于現(xiàn)場(chǎng)總線的范疇,其總線規(guī)范已被ISO國(guó)際標(biāo)準(zhǔn)化組織制定為國(guó)際標(biāo)準(zhǔn),并被公認(rèn)為是最有前途的現(xiàn)場(chǎng)總線之一。CAN總線廣泛應(yīng)用于控制系統(tǒng)中的各檢測(cè)和執(zhí)行機(jī)構(gòu)之間的數(shù)據(jù)通信。因?yàn)?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/CAN">CAN總線數(shù)據(jù)的傳輸和處理都由節(jié)點(diǎn)的單片機(jī)完成。這樣就使設(shè)計(jì)者和觀察者沒(méi)有辦法以比較直觀的方式掌握總線的運(yùn)行情況。
本文引用地址:http://butianyuan.cn/article/155383.htm現(xiàn)在市場(chǎng)上主要有兩種CAN的接口卡,使用PCI總線和使用USB接口。前者具有傳輸速度快的特點(diǎn),但卻要占用一個(gè)計(jì)算機(jī)的插槽,并且設(shè)計(jì)上十分困難;后者的傳輸速度也很快,且價(jià)格較便宜,但要花費(fèi)很大的精力進(jìn)行USB的固件開(kāi)發(fā)和維護(hù),并要編寫(xiě)復(fù)雜的驅(qū)動(dòng)程序。根據(jù)此,需要設(shè)計(jì)一種能夠方便讀取CAN總線數(shù)據(jù),并通過(guò)RS 232串行口將數(shù)據(jù)送給PC機(jī)處理和顯示的接口卡;此外還需對(duì)其串行傳輸?shù)膮f(xié)議進(jìn)行加強(qiáng),以使能有效地降低傳輸過(guò)程中出現(xiàn)的錯(cuò)誤。
1 接口卡的硬件設(shè)計(jì)
硬件部分主要包括主控制器、CAN總線控制器、CAN總線收發(fā)器以及與計(jì)算機(jī)的RS 232通信接口芯片等。系統(tǒng)的總體結(jié)構(gòu)如圖1所示。主控制器通過(guò)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ī)里。
CAN總線控制器選用Philips公司生產(chǎn)的SJA1000,該芯片是PCA82C200CAN控制器的替代品,而且新增加了一種PeliCAN工作模式,能夠支持CAN 2.0B協(xié)議。它還支持錯(cuò)誤中斷、報(bào)警限制、驗(yàn)收濾波器擴(kuò)展和自接收請(qǐng)求等功能。在系統(tǒng)中,將SJA1000的中斷輸出引腳INT接到單片機(jī)的中斷輸入引腳,這樣可以在接收數(shù)據(jù)或者總線錯(cuò)誤時(shí)產(chǎn)生中斷,由控制器進(jìn)行相應(yīng)的處理。SJA1000的片選CS端接單片機(jī)的P2.7引腳,這樣SJA1000的地址就確定為7F00H~7FFFH。
選用芯片82C250作為CAN控制器和物理總線間的驅(qū)動(dòng)接口,可以提供對(duì)總線的差動(dòng)發(fā)送能力和對(duì)CAN控制器的差動(dòng)接收能力,其最高速可達(dá)1 Mb/s。由于實(shí)際系統(tǒng)中存在干擾,故增加高速光隔6N137,以起到隔離的作用。電氣接口很簡(jiǎn)單,有CANH和CANL兩根線,用以完成CAN的數(shù)據(jù)傳輸。在CAN總線的兩端有一個(gè)120Ω的電阻,其作用為匹配總線阻抗,用于提高數(shù)據(jù)通信的抗干擾性及可靠性。具體電路如圖2所示。
1.2 與RS 232接口
RS 232標(biāo)準(zhǔn)是美國(guó)電子工業(yè)聯(lián)合會(huì)(EIA)制定的一種串行物理接口標(biāo)準(zhǔn),它適合于數(shù)據(jù)傳輸率在O~20 000 b/s范圍內(nèi)的通信,目前廣泛用于計(jì)算機(jī)與終端或外設(shè)之間的近端連接。實(shí)際工作時(shí),應(yīng)保證電平在5~15V之間。所以為了與單片機(jī)進(jìn)行通信。必須對(duì)其電平進(jìn)行轉(zhuǎn)換。現(xiàn)在常用的轉(zhuǎn)換芯片是MAX232。MAX232內(nèi)部有電壓倍增電路和轉(zhuǎn)換電路,只需5V電源便可實(shí)現(xiàn)TTL電平與RS 232電平的轉(zhuǎn)換,使用十分方便。串口接口電路如圖3所示。
2 接口卡的軟件設(shè)計(jì)
2.1 RS 232接口軟件設(shè)計(jì)
單片機(jī)與PC端的數(shù)據(jù)通信需要設(shè)計(jì)一個(gè)通信協(xié)議,采用同步通信方式進(jìn)行。將通信協(xié)議分成命令幀、應(yīng)答幀和數(shù)據(jù)幀三種格式。每種幀都包含有起始字節(jié)、數(shù)據(jù)長(zhǎng)度、校驗(yàn)字節(jié)和幀結(jié)束字節(jié)。具體格式如圖4所示。
電容式觸摸屏相關(guān)文章:電容式觸摸屏原理
評(píng)論