基于單片機(jī)PIC16C72的分體式空調(diào)控制器
前言
汽車車身視覺檢測站是用于測量車身關(guān)鍵點(diǎn)的三維空間坐標(biāo)的大型的專用檢測系統(tǒng)。它由機(jī)械及定位系統(tǒng)、三維視覺傳感器系統(tǒng)、測量控制與接口系統(tǒng)、標(biāo)定系統(tǒng)以及計(jì)算機(jī)軟件五大部分組成。主要方法采用結(jié)構(gòu)光傳感器,經(jīng)標(biāo)定系統(tǒng)標(biāo)定后,通過控制系統(tǒng)選取被測點(diǎn),采集圖像,結(jié)合視覺檢測算法,求出被測點(diǎn)坐標(biāo)參數(shù)。為進(jìn)行測量,必須把計(jì)算機(jī)與傳輸器聯(lián)系起來。檢測人員應(yīng)能通過計(jì)算機(jī)選擇測點(diǎn),使傳感器按預(yù)先設(shè)定的順序進(jìn)入測量狀態(tài),產(chǎn)生測量用的光條平面,還應(yīng)能夠隨時(shí)調(diào)整測量順序,并實(shí)現(xiàn)對光源的實(shí)時(shí)控制及圖像部分的多用戶采集。
控制器局域網(wǎng)CAN(Controller Area Network)是一種具有很高保密性,有效支持分布式控制及實(shí)時(shí)控制的串行通信網(wǎng)絡(luò)。CAN總線屬于現(xiàn)場總線范疇,與現(xiàn)有的其他總線相比,屬于一種分散式、數(shù)字化、雙向、多站點(diǎn)、多變量的通信系統(tǒng),具有通信速率高、可靠性強(qiáng)、連接方便、性能價(jià)格比高等諸多優(yōu)點(diǎn),非常適用于分布式測量系統(tǒng)的數(shù)據(jù)通信。
本文主要介紹CAN總線在視覺檢測站中的研究與應(yīng)用。
二、視覺檢測原理及視覺檢測站控制系統(tǒng)
汽車車身視覺檢測是目前正在發(fā)展的一種新型車身檢測方法。其主要原理是利用計(jì)算機(jī)視覺技術(shù),采用主動三角法獲取車身表面點(diǎn)的信息,通過三維視覺算法求取各關(guān)鍵點(diǎn)的坐標(biāo),從而完成對車身各頂點(diǎn)位置、擋風(fēng)玻璃框尺寸、定位孔大小及位置、車門安裝處棱邊位置及走向等主要參數(shù)的測量。
由于汽車車身長寬高都是幾m(米)范圍,被測點(diǎn)一般都要求在50個(gè)以上,網(wǎng)絡(luò)布線要求300m以上,此外控制系統(tǒng)還應(yīng)實(shí)現(xiàn)對檢測站中的機(jī)械及定位系統(tǒng)的控制。整個(gè)控制系統(tǒng)應(yīng)具有一定的擴(kuò)展和適應(yīng)能力,以便于其他控制單元的加入。
本系統(tǒng)中,針對不同的測量對象,采用不同類型的傳感器,總數(shù)在50臺以上。檢測站的控制系統(tǒng)應(yīng)能對這些傳感器的動作進(jìn)行實(shí)時(shí)控制,以使其動作相互協(xié)調(diào)。另外,本測量系統(tǒng)將用于汽車生產(chǎn)線,車身先由吊車放到運(yùn)放小車上,然后由小車運(yùn)送到檢測站內(nèi)。吊車及運(yùn)送小車由直流電機(jī)驅(qū)動,它們的動作應(yīng)該既可以通過主機(jī)鍵盤控制,也可以通過檢測站中的控制柜直接控制。由于以上各方面的考慮,我們決定采用CAN總線作為本控制網(wǎng)絡(luò)的通信標(biāo)準(zhǔn)。
二、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)與CAN總線
在車身檢測站中,對各傳感器的數(shù)據(jù)采集及圖像處理等工作主要由CP機(jī)完成,為操作方便,對機(jī)械部分的控制還應(yīng)能通過控制臺進(jìn)行。本系統(tǒng)控制節(jié)點(diǎn)多(50個(gè)以上),可靠性要求高,傳統(tǒng)的集中控制方式雖然功能集中、速度較快,但具有硬件結(jié)構(gòu)復(fù)雜、現(xiàn)場布線困難、擴(kuò)展能力低等缺點(diǎn),所以我們采用單片機(jī)作為直接控制單元,用于對傳感器的直接控制。每個(gè)單片機(jī)都是控制網(wǎng)絡(luò)上的一個(gè)節(jié)點(diǎn),各節(jié)點(diǎn)直接掛接在數(shù)據(jù)總線上。PC機(jī)和控制框也同樣各和為一個(gè)節(jié)點(diǎn)掛接在總線上,即控制網(wǎng)絡(luò)應(yīng)具有多主機(jī)控制能力。所以整個(gè)網(wǎng)絡(luò)采用多主機(jī)結(jié)構(gòu),即每一個(gè)節(jié)點(diǎn)也是一個(gè)主機(jī),通過主機(jī)間的通信以實(shí)現(xiàn)控制要求。為此,我們決定采用總線型的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),利用CAN靈活方便、支持多主機(jī)方式等特點(diǎn),建立控制網(wǎng)絡(luò)。不難看出,只要解決好“碰撞”問題,這種方法有結(jié)構(gòu)簡單、安全系數(shù)高、靈活性好、易于擴(kuò)展等特點(diǎn),可以充分滿足本檢測站的控制要墳??刂凭W(wǎng)絡(luò)的結(jié)構(gòu)示意圖如圖2所示。
現(xiàn)有微機(jī)一般都配有兩個(gè)串行接口,其機(jī)械特性和電器特性均符合RS-232C標(biāo)準(zhǔn)。由于RC- 232C標(biāo)準(zhǔn)采用單端電路,極易引入附加電平,并且負(fù)載電容不能大于2500pF,傳輸距離和速度都非常有限;而CAN總線這些方面都遠(yuǎn)遠(yuǎn)超過RS- 232C。CAN總線是一個(gè)智能化的總線,具有自我管理的功能,能夠有效地支持多主機(jī)分布式控制,能夠良好地解決“碰撞”問題,并具有傳輸速率高(可達(dá) 1Mbps)、傳輸距離長(可達(dá)1000m)、信號的傳輸精度高(0.01%)等優(yōu)點(diǎn)。另外,采用循環(huán)冗余CRC校驗(yàn)及獨(dú)特的數(shù)據(jù)信號表示,使其具有錯(cuò)誤判別及自動重發(fā)功能,漏檢錯(cuò)誤概率低于5×10 -11。所以,我們采用了CAN總線。由于CAN總線優(yōu)良的性能和智能化的管理,保證了整個(gè)檢測站在惡劣環(huán)境下的正常工作。
在信道訪問控制上,采用主從式與自由競爭式相結(jié)合的放手式通信方法,即以PC主處理機(jī)和控制臺作為主控制節(jié)點(diǎn),兩主控節(jié)點(diǎn)的優(yōu)先級與節(jié)點(diǎn)標(biāo)總符相對應(yīng),主控節(jié)點(diǎn)命令及信息的送可通過外部設(shè)置約定,也可通過自由競爭實(shí)現(xiàn)。
在PC 機(jī)方面,采用接口卡使PC機(jī)跨入總線,其接口電路如圖3所示。這里,并行接口采用8255A可編程外圍接口芯片,接口邏輯及CAN轉(zhuǎn)換主要由 MC68HC05X16單片機(jī)控制。工作中,信息由PC機(jī)數(shù)據(jù)總線送出,經(jīng)8255A的PA口進(jìn)入單片機(jī),在單片機(jī)的控制下將并行輸入的信號轉(zhuǎn)換為CAN 總線輸出。這里,采用16V8的GAL進(jìn)行地址譯碼并實(shí)現(xiàn)部分邏輯關(guān)系。
在傳感器和控制框通信接口方面,選用了MC68HC05X16單片機(jī)。由于MC68HC05X16自身帶CAN接口,簡化了硬件設(shè)計(jì),減少了系統(tǒng)故障,增加了通信的可靠性與安全性。本系統(tǒng)硬件設(shè)計(jì)為128個(gè)節(jié)點(diǎn)(可以設(shè)計(jì)為更多),可以充分滿足檢測站 50個(gè)節(jié)點(diǎn)的要求,并且可以進(jìn)一步擴(kuò)展,加入新的檢測設(shè)備和檢測點(diǎn)。
三、CAN總線通信協(xié)議
針對測量系統(tǒng)的需要,我們采用了多主機(jī)通信方式。該方式可以充分發(fā)揮每個(gè)主機(jī)的作用,很容易使各個(gè)節(jié)點(diǎn)之間建立起數(shù)據(jù)聯(lián)系,任意兩個(gè)節(jié)點(diǎn)之間都可以根據(jù)需要進(jìn)行通信。通信與控制都非常簡單,可以充分滿足本檢測站迅速、可靠、實(shí)時(shí)性的要求。根據(jù)檢測系統(tǒng)的需要和CAN幀結(jié)構(gòu),重點(diǎn)結(jié)合測量傳感器和控制柜的功能要求,我們對網(wǎng)絡(luò)的通信協(xié)議進(jìn)行了研究和設(shè)計(jì)。
本系統(tǒng)中,CAN總線以報(bào)文為單位進(jìn)行數(shù)據(jù)傳輸,并采取位仲裁的方式對總線進(jìn)行訪問,即在報(bào)文起始部分發(fā)送節(jié)點(diǎn)標(biāo)總符。CAN總線的標(biāo)準(zhǔn)數(shù)據(jù)幀的仲裁場有 11個(gè)位標(biāo)識符,它主要用于解決總線上的碰撞問題。數(shù)據(jù)幀標(biāo)識符越小,數(shù)據(jù)幀具有越高的優(yōu)先權(quán)。也就是說,當(dāng)兩幀數(shù)據(jù)同時(shí)由高位向低位發(fā)送時(shí),一旦有不同的電平,發(fā)更新“凹槽”電平(recessive level)的數(shù)據(jù)幀將停止發(fā)送,而發(fā)送“主控”電平(dominant level)的數(shù)據(jù)幀將繼續(xù)發(fā)送,這樣,CAN總線自身就解決了碰撞問題。我們在每個(gè)節(jié)點(diǎn)設(shè)計(jì)了一個(gè)8位DIP開關(guān),通過這個(gè)開關(guān)可以方便地改變傳感器地址,并且,以它代表的數(shù)據(jù)作為該節(jié)點(diǎn)發(fā)送的數(shù)據(jù)幀的標(biāo)識符的高8位。這樣,地址越小的節(jié)點(diǎn),其發(fā)送的數(shù)據(jù)就具有越高的優(yōu)先權(quán)。根據(jù)節(jié)點(diǎn)的重要性安排地址,有效地解決了碰撞和優(yōu)先權(quán)的問題。
四、采用CAN總線的過程控制軟件
根據(jù)檢測系統(tǒng)的需要,將指令分為通用指令和尋址指令:通用指令是旨所有收到指令的節(jié)點(diǎn)都要執(zhí)行的指令;尋址指令是指收到指令的節(jié)點(diǎn)只有相應(yīng)地址的節(jié)點(diǎn)才執(zhí)行的指令。由于CAN總線標(biāo)準(zhǔn)數(shù)據(jù)幀最多可帶有8個(gè)字節(jié)的數(shù)據(jù),們將第一個(gè)字節(jié)作為地址(127為通用的地址,帶有通用指令的數(shù)據(jù)幀第一個(gè)字節(jié)為127),第二個(gè)字節(jié)作為指令字節(jié),用于表示節(jié)點(diǎn)所要執(zhí)行的動作。表1為本系統(tǒng)中所用到的部分代碼及其意義。
評論