任肖麗,黃婉刁,盧孫平,王驥
(廣東海洋大學(xué) 信息學(xué)院,湛江 524088)
?
嵌入式技術(shù)的智能車系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)研究*
任肖麗,黃婉刁,盧孫平,王驥
(廣東海洋大學(xué) 信息學(xué)院,湛江 524088)
基于MC9S12XS128的智能車,通過對(duì)道路圖像進(jìn)行采集和處理,再利用算法控制策略、PID控制原理和PWM控制技術(shù)對(duì)智能車轉(zhuǎn)向和速度進(jìn)行控制,使小車能夠自主行駛,通過使用CodeWarrior軟件編程和BDM調(diào)試實(shí)現(xiàn)小車行駛控制。本文基于 PID算法提出了改進(jìn)的算法,經(jīng)實(shí)物驗(yàn)證,所設(shè)計(jì)的智能車系統(tǒng)能有效循跡,保持在道路中間快速行駛,可以實(shí)現(xiàn)提前轉(zhuǎn)彎,且系統(tǒng)具有較好的抗干擾能力。
嵌入式系統(tǒng);PID;攝像頭;編碼器
智能車輛(intelligent vehicle)是一種集環(huán)境感知、決策規(guī)劃、自動(dòng)行駛等功能于一體的綜合智能系統(tǒng),整合了自動(dòng)控制、人工智能、信息融合、傳感器技術(shù)、圖像處理技術(shù)及計(jì)算機(jī)等多門學(xué)科的最新研究成果,是當(dāng)前最為活躍的研究領(lǐng)域之一。國外的一些經(jīng)濟(jì)發(fā)達(dá)國家對(duì)智能車的研究開始于20世紀(jì)50年代,直到20世紀(jì)70年代末,智能車輛的研究只是集中在美國、日本及歐洲的少數(shù)幾個(gè)發(fā)達(dá)國家。從20世紀(jì)80年代開始,隨著計(jì)算機(jī)處理能力的提升、自動(dòng)控制技術(shù)越來越成熟、電子科學(xué)和通信技術(shù)的不斷發(fā)展,人們對(duì)智能車的研究越來越深入,也取得了豐碩的研究成果,特別是在20世紀(jì)90年代,智能車的研究深入系統(tǒng)化、大規(guī)模化,各式各樣的智能車被研發(fā)出來,其中最具有代表性的是美國、德國、意大利和英國等國家的研究成果[1]。目前,美國是在智能車輛領(lǐng)域研究最深、投入資金最大的國家。在我國,20世紀(jì)80年代國防科技大學(xué)開始對(duì)智能車輛技術(shù)進(jìn)行研究,清華大學(xué)汽車研究所是國內(nèi)最早成立的主要從事智能車研究單位之一,在汽車導(dǎo)航、主動(dòng)避撞、車載微機(jī)等方面進(jìn)行了廣泛而深入的研究。2000年6月,國防科技大學(xué)成功試驗(yàn)了第4代無人駕駛汽車,它的最高時(shí)速達(dá)到了75.6 km,創(chuàng)國內(nèi)最高紀(jì)錄。另外,浙江大學(xué)、中國科學(xué)院電子研究所、北京理工大學(xué)、南京理工大學(xué)等各大院校和研究所都對(duì)該領(lǐng)域進(jìn)行了相關(guān)研究,并取得了一定的研究成果。這一新興學(xué)科吸引著越來越多的研究機(jī)構(gòu)、學(xué)者加入到智能車相關(guān)技術(shù)開發(fā)研究中來,深入地研究智能車輛技術(shù),對(duì)推進(jìn)智能車的快速發(fā)展和廣泛應(yīng)用有著非常重大的現(xiàn)實(shí)意義。
以7.2 V的可充電式Ni-Cd電池作為電源,通過穩(wěn)壓,為各個(gè)模塊供電,核心控制器為MC9S12XS128,以具有良好分辨率和前瞻性的CMOS攝像頭OV7620作為傳感器,將道路圖像信息傳送給MC9S12XS128計(jì)算處理,提取出道路的中心并判斷出道路類型。系統(tǒng)總框圖如圖1所示。

圖1 智能車系統(tǒng)總框圖
可靠穩(wěn)定的硬件電路是智能車平穩(wěn)快速前行的保障。本智能車系統(tǒng)基于盡量開發(fā)MC9S12XS128單片機(jī)功能的想法,在硬軟件設(shè)計(jì)電路方面,盡量使其具備更多的功能。本設(shè)計(jì)的硬件電路主要包括MC9S12XS128最小系統(tǒng)模塊、BDM下載調(diào)試模塊、電源穩(wěn)壓模塊、TF卡模塊、舵機(jī)模塊、電機(jī)驅(qū)動(dòng)模塊、攝像頭模塊、液晶顯示模塊、編碼器模塊、4×4矩陣鍵盤模塊、無線通信模塊等等。
1.1 MC9S12XS128最小系統(tǒng)模塊
采用MC9S12XS128芯片作為系統(tǒng)中央處理器,MC9S12XS128是Freescale公司生產(chǎn)的一款16位單片機(jī),其運(yùn)算速度快、低功耗、功能強(qiáng),總線速度高達(dá)40 MHz。在實(shí)際設(shè)計(jì)中,采用了超頻,超頻到了64 MHz。該芯片作為智能車的核心芯片。
1.2 BDM下載調(diào)試模塊
BDM(Background Debugging Mode)是摩托羅拉公司支持的一種OCD的調(diào)試模式。通過BDM接口可以完成基本的調(diào)試功能,例如:設(shè)置斷點(diǎn)、讀寫內(nèi)存、讀寫寄存器、下載程序、單步執(zhí)行程序、運(yùn)行程序、停止程序運(yùn)行等。為了方便裝載程序,將BDM調(diào)試模塊集成到PCB中。BDM主要芯片是MC68HC908JB8ADW,支持OCD調(diào)試模式,具有性能穩(wěn)定,低功耗等特點(diǎn)。
1.3 電源穩(wěn)壓模塊
電源管理是智能車設(shè)計(jì)中的重要環(huán)節(jié),它給系統(tǒng)的各個(gè)模塊進(jìn)行供電,可靠的電源設(shè)計(jì)是整個(gè)硬件電路穩(wěn)定運(yùn)行的基礎(chǔ)[2]。智能車的供電電源采用的是“飛思卡爾”杯智能車大賽組委會(huì)提供的可充電式Ni-Cd電池,其供電電壓為7.2 V,容量為1 800 mA/h,由于智能車系統(tǒng)各個(gè)模塊所需的電壓不同,因此需要進(jìn)行電壓調(diào)節(jié)。
MC9S12XS128最小系統(tǒng)模塊、攝像頭模塊、液晶顯示模塊、編碼器測(cè)速模塊、所需電壓為5 V,BDM下載調(diào)試模塊所用電壓為3.3 V,方向控制模塊所用電壓為6 V,電機(jī)驅(qū)動(dòng)模塊所用電壓為7.2 V。
所使用的穩(wěn)壓芯片有LM2940-5,AMS1117-3.3,LM2596-ADJ。
1.4 攝像頭模塊
采用的是CMOS攝像頭OV7620,直接輸出8位灰度值數(shù)字圖像。攝像頭模塊的供電電壓為+5 V,攝像頭分辨率為640×480,圖像采集速度為30幀/s。OV7620的控制采用SCCB(Serial Camera Control Bus)協(xié)議。
1.5 電機(jī)驅(qū)動(dòng)模塊
電機(jī)驅(qū)動(dòng)電路如圖2所示,BTS7960是一款集成度很高的大電流半橋驅(qū)動(dòng)芯片,該芯片內(nèi)部集成了一個(gè)P溝道的高端MOSFET和一個(gè)N溝道的低端MOSFET,由于高端采用P溝道MOSFET,因此避免了電磁干擾,提高了電磁兼容能力[3]。采用這個(gè)設(shè)計(jì)方案是因?yàn)橛葿TS7960組成的電路簡單,簡化了電路的設(shè)計(jì),提高了電路的可靠性,且該電路持續(xù)的漏極電流可高達(dá)40A,能允許PWM的頻率0~25 kHz之間任意變化,因此BTS7960為低電壓高電流的PWM調(diào)速電機(jī)提供了一個(gè)較優(yōu)的解決方案,具有很高的可靠性。

圖2 電機(jī)驅(qū)動(dòng)
整個(gè)智能車系統(tǒng)利用OV7620采集道路圖像信息,再經(jīng)過圖像處理,本文仿真的公路用兩條黑線代替車道,擬提取出道路兩邊的黑線,經(jīng)過計(jì)算,得出道路中心信息,確定智能車行駛路徑,將一幀道路的圖像分為3個(gè)區(qū)域,通過判斷各個(gè)區(qū)域的不同特征,如偏差等,判斷出當(dāng)前道路的道路類型,再通過PID環(huán)路控制,使核心控制器輸出PWM信號(hào),進(jìn)行方向和速度的控制,實(shí)現(xiàn)智能車的智能行駛。
2.1 圖像信息提取方法
圖像信息的提取包括圖像的采集和采集后對(duì)跑道黑線信息提取兩個(gè)部分,圖像信息提取是整個(gè)系統(tǒng)軟件算法設(shè)計(jì)的基礎(chǔ)。OV7620可直接輸出8位灰度值數(shù)字圖像,其時(shí)序圖如圖3所示。

圖3 OV7620時(shí)序圖
其中VSYNC為場(chǎng)同步信號(hào),HREF為行同步信號(hào),攝像頭每場(chǎng)像素最高可達(dá)640×480,由于單片機(jī)的主頻超頻到了64 MHz,因此單片機(jī)不可能采集到每一個(gè)像素點(diǎn)信息。而如果圖像的信息量太大,很難進(jìn)行后續(xù)的圖像處理,并占用很多資源,所以,選擇抽樣提取32×84的圖像信息,方便在液晶上顯示圖像信息。
首先定義一個(gè)數(shù)組Image_Data用來存儲(chǔ)圖像信息,并寫場(chǎng)中斷函數(shù)和行中斷函數(shù)。場(chǎng)同步信號(hào)是每一場(chǎng)開始的信號(hào),采集完一場(chǎng)數(shù)據(jù)之后,都需要清場(chǎng)中斷;行同步信號(hào)是每一行開始的信號(hào),在行中斷信號(hào)到來之后,在行中斷函數(shù)中對(duì)一行的數(shù)據(jù)進(jìn)行采集,通過循環(huán)規(guī)定次數(shù),使之采集到所需的點(diǎn)數(shù)。
跑道黑線信息提取在整個(gè)智能車系統(tǒng)中起著至關(guān)重要的作用,經(jīng)過不斷調(diào)試,最終確定用Get_Way函數(shù)提取跑道信息,得出最終智能車的行駛路線。
2.2 黑線提取算法
直接利用原始圖像逐行掃描,根據(jù)設(shè)定的閾值提取黑白跳變點(diǎn);利用仿真道路黑線的連續(xù)性,根據(jù)上一行黑線中心的位置來確定本行求出的黑線中心是否有效;求黑線中心時(shí),因?yàn)榻幍暮诰€穩(wěn)定,遠(yuǎn)處黑線不穩(wěn)定,所以采用由近及遠(yuǎn)的辦法;圖像數(shù)據(jù)量大,全部掃描一遍會(huì)浪費(fèi)很多時(shí)間,利用前面已經(jīng)求出的黑線中心位置判斷出黑線的趨勢(shì),從而推斷出下一行的黑線大概位置,確定出掃描范圍,避免整行逐點(diǎn)掃描,節(jié)約時(shí)間;具體算法流程圖如圖4所示。
2.3 路徑判斷與轉(zhuǎn)向和速度調(diào)節(jié)的PID控制算法
在路徑的判斷方面,本設(shè)計(jì)將一幀道路的圖像分為3個(gè)區(qū)域,通過判斷各個(gè)區(qū)域的不同特征,從而判斷出道路是直道、彎道。首先根據(jù)最遠(yuǎn)的區(qū)域判斷道路是否有界,如果無界則表明道路為直道或者小S彎道,有界則表明道路為彎道。分別求出接下來兩個(gè)區(qū)域的中心的偏差值的平均值,如果賽道無界則也要求出最遠(yuǎn)那個(gè)區(qū)域的中心偏差值的平均值。根據(jù)道路的偏差平均值以及道路的方差,判斷道路類型。這個(gè)部分需要不斷的調(diào)試,才能調(diào)出最好的效果[4]。

圖4 黑線提取算法流程圖
2.3.1 PID控制原理
電機(jī)控制算法有開環(huán)控制和閉環(huán)控制兩種,從之前的比賽成績和設(shè)計(jì)經(jīng)驗(yàn)可知,開環(huán)控制算法對(duì)電機(jī)的控制效果非常不理想,存在很多缺陷。運(yùn)用由比例環(huán)節(jié)、積分環(huán)節(jié)和微分環(huán)節(jié)組成的PID控制系統(tǒng),可以大大改善對(duì)智能車系統(tǒng)的控制精度和穩(wěn)定性,確保系統(tǒng)響應(yīng)的實(shí)時(shí)性,采用PID控制算法,不需要針對(duì)智能車建立非常精確的數(shù)學(xué)模型,只要參數(shù)匹配合適,就可以實(shí)現(xiàn)對(duì)智能車電機(jī)較好的控制,且PID算法簡單異行,穩(wěn)定性好,多用于控制模型不準(zhǔn)的工業(yè)領(lǐng)域。因此,本文采用基于反饋控制的PID算法。
比例調(diào)節(jié)是在系統(tǒng)輸入和輸出產(chǎn)生一定偏差時(shí),按照給定的比例因子Kp來反映系統(tǒng)此時(shí)產(chǎn)生的偏差,并且及時(shí)的發(fā)揮比例環(huán)節(jié)的協(xié)調(diào)作用,以使輸入和輸出盡量趨于一致,誤差盡量小。但是比例作用過大帶來的問題是車速的超調(diào)和振蕩。車速經(jīng)常出現(xiàn)猛增猛減的現(xiàn)象會(huì)使智能車系統(tǒng)變得不穩(wěn)定。智能車容易因?yàn)樗俣入A躍變化而影響賽道表現(xiàn)甚至?xí)_出賽道。因此,在智能車速度控制中,找到一個(gè)非常合適的比例系數(shù)Kp至關(guān)重要。
2.3.2 增量式PID控制算法
增大微分項(xiàng)系數(shù)可以加快動(dòng)態(tài)系統(tǒng)響應(yīng),但容易引起震蕩。通常增大比例系數(shù)能夠減小上升時(shí)間,但不能消除穩(wěn)態(tài)誤差。增大積分系數(shù)能夠消除穩(wěn)態(tài)誤差,但會(huì)使瞬時(shí)響應(yīng)變差。增大微分系數(shù)能夠增強(qiáng)系統(tǒng)的穩(wěn)定特性,減小超調(diào),并且改善瞬時(shí)響應(yīng)。
用矩形數(shù)值積分代替上式中的積分項(xiàng),對(duì)導(dǎo)數(shù)項(xiàng)用后向差分逼近,得到數(shù)字PID控制器的位置算式模型:
(1)
由式(1)可得到控制器的第n-1個(gè)采樣時(shí)刻的輸出值為:
(2)
將式(1)和式(2)相減并整理,可得增量式PID控制算法公式為:
(3)

增量式PID算法在速度控制中采取的基本策略是彎道降速,直道提速,將圖像經(jīng)過算法處理后得到的黑線位置和對(duì)應(yīng)的速度PID參照速度處理成二次曲線的關(guān)系,如圖5所示。在實(shí)際測(cè)試中,發(fā)現(xiàn)小車直道和彎道相互過渡時(shí)加減速比較靈敏,與舵機(jī)轉(zhuǎn)向控制配合較好。
對(duì)舵機(jī)的控制采用了位置式PID算法,根據(jù)道路中心的位置動(dòng)態(tài)改變PID參數(shù),得到了較好的控制效果,經(jīng)反復(fù)測(cè)試,在PID調(diào)節(jié)中將積分項(xiàng)系數(shù)置零,比較穩(wěn)定性和精確性,舵機(jī)動(dòng)態(tài)隨動(dòng)系統(tǒng)對(duì)動(dòng)態(tài)響應(yīng)性能要求更高。更重要的是,在Ki置零的情況下,通過合理調(diào)節(jié)Kp參數(shù),發(fā)現(xiàn)小車在直線高速行駛時(shí)仍能保持車身非常穩(wěn)定,沒有震蕩,基本沒有必要使用Ki參數(shù);微分項(xiàng)系數(shù)Kd則使用定值,由于舵機(jī)在一般賽道中都需要較好的動(dòng)態(tài)響應(yīng)能力;對(duì)Kp采用二次函數(shù)曲線,Kp隨黑線的偏離位置成二次函數(shù)關(guān)系增大,如圖5所示。

圖5 黑線位置和給定速度實(shí)測(cè)曲線
經(jīng)測(cè)試,電源穩(wěn)壓模塊電路可靠有效,輸出電壓均符合要求。測(cè)試攝像頭的主要通過LCD5110和串口調(diào)試,使之通過攝像頭采集圖像,再將數(shù)據(jù)傳送給MC9S12XS128,經(jīng)過二值化處理后傳送到LCD 110上顯示出來或通過串口傳送到電腦上用串口調(diào)試助手顯示,明顯可看到賽道的圖像。經(jīng)實(shí)物運(yùn)行,本文設(shè)計(jì)的智能車系統(tǒng)能有效循跡,快速轉(zhuǎn)彎,具有較好的抗干擾能力,滿足設(shè)計(jì)要求。

[1] 韓毅,楊天. 基于HCS12單片機(jī)的智能尋跡模型車的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(18):1535-1955.
[2] 呂偉鵬.電動(dòng)車控制器用新型輔助電源設(shè)計(jì)[J].電源技術(shù),2012(12):1915-1917.
[3] 何洪文,余曉江,孫逢春,等.電動(dòng)汽車電機(jī)驅(qū)動(dòng)系統(tǒng)動(dòng)力特性分析[J].中國電機(jī)工程學(xué)報(bào),2006,26(6):136-140.
[4] 丁芳,賈翔宇,李科偉,等.模糊算法在智能車控制中的應(yīng)用[J].中國民航大學(xué)學(xué)報(bào),2009(1).
[5] Zhaohui Wu,Yanfei Liu,Gang Pan.A Smart Car Control Model for Brake Comfort Based on Car Following[J].Intelligent Transportation Systems,2009(3).
[6] Md Nazmul Hasan,S M Didar-Al-Alam,Sikder Rezwanul Huq.Intelligent Car for a Smart [J]. International Journal of Computer Applications Control Car,2011(11).
任肖麗(實(shí)驗(yàn)師),研究方向?yàn)殛嚵行盘?hào)處理、嵌入式系統(tǒng)應(yīng)用;王驥(副教授),研究方向?yàn)榍度胧郊夹g(shù)與無線傳感器網(wǎng)絡(luò)。
Intelligent Vehicle System Based on Embedded Systems
Ren Xiaoli, Huang Wandiao, Lu Sunping, Wang Ji
(College of Information, Guangdong Ocean University, Zhanjiang 524088,China)
The intelligent vehicle based on MC9S12XS128 collects and processes image information by the camera, and then uses algorithm control strategy, PID control principle and PWM control technology to control the steering and speed of intelligent vehicle, so that the car is capable of road self-identification, independent drive, and finally the car driving control using CodeWarrior software programming and BDM debugging. In this paper, an improved algorithm based on the PID algorithm is proposed. By physical verification, the design of the intelligent vehicle system can effectively track, keep moving fast in the middle of the road, turn in advance, and the system has better anti-jamming capability.
embed system;PID;camera;coder
廣東省自然科學(xué)項(xiàng)目(項(xiàng)目編號(hào):S2012010008261);廣東海洋大學(xué)校外大學(xué)生創(chuàng)新實(shí)踐項(xiàng)目(發(fā)文號(hào):校教務(wù)〔2013〕46號(hào))資助;廣東海洋大學(xué)教改項(xiàng)目(項(xiàng)目編號(hào):xjg201218)資助。
TP393.1/TP873
A
珍
2013-12-19)