文檔簡介
1、. . . . 自主行走機器人小車的軟硬件研究馬曉南(自動化與電氣工程學院 指導教師:邵世凡)摘要:本文通過對ARM開發(fā)和研究,實現(xiàn)移動機器人小車自主行走,速度反饋和紅外線避障的功能。小車系統(tǒng)的組成主要包括避障傳感器部分,電機控制部分,速度反饋部分以與ARM嵌入式系統(tǒng)核心控制部分。避障傳感器系統(tǒng)采用紅外線技術,主要完成對障礙物的感應;移動機器人小車的電機控制轉速部分采用步進電機作為電機首選;還有速度反饋的部分,由于ARM板部沒有記數(shù)的功能,我們就設計了傳感器數(shù)據讀取的一個系統(tǒng)。最后,貫穿整篇文章的是對機器人的核心部分(基于ARM嵌入式系統(tǒng))的研究和設計,主要讓操作系統(tǒng)完成控制功能(主要是通過接
2、收避障系統(tǒng)感應外界環(huán)境所返回的信號,進而控制運動控制系統(tǒng),從而完成一個自主運動的智能功能)。關鍵詞:ARM板;自主行走;紅外線感應;嵌入式操作系統(tǒng);電機Abstract:The main idea of the Thesis is passed developing and studying to ARM, Realize the Function of displacement robot handcart going autonomously, Speed couples back and Infrared ray avoids blocker.Systematic composition
3、 includes a handcart mainly avoiding blocker sensor part, Electric motor control section, Speed couples back part and ARM implants dyadic system core control section. Avoid blocker sensor system adopt the infrared ray technology, Accomplish the induction to obstruction mainly.The rotation rate part
4、displacement robot handcart electric motor is controlled adopt step-by-step electric motor to elect as the electric motor head,Since not having mark number function in the inside of ARM board,we have designed a system that the sensor data fetches right away,Through the entire sheet article's fin
5、ally, is to study and design that (owing to that ARM implants style systematically) to robotic core part,Dodging OS mainly to accomplish a control function (is by the fact that taking-over avoids meeting signal returned to by blocker system induced the external world environment mainly , controls mo
6、tion navar then , accomplishes a intelligence function acting on self's own moving thereby).Keywords:ARM board; Going autonomously;Infrared ray induction; Embedded Operation Syetem,;Electric motor1 緒論1.1 機器人的發(fā)展歷史機器人是具有一些類似人的功能的機械電子裝置,或者叫自動化裝置,它仍然是個機器,它有三個特點,一個是有類人的功能,比如說作業(yè)功能,感知功能,行走功能,還能完成各種動作,它
7、還有一個特點是根據人的編程能自動的工作,這里一個顯著的特點,就是它可以編程,改變它的工作、動作、工作的對象,和工作的一些要求,它是人造的機器或機械電子裝置。但從完整的更為深遠的機器人定義來看,應該更強調機器人智能,所以人們又提出來機器人的定義是能夠感知環(huán)境,能夠有學習、情感和對外界一種邏輯判斷思維的這種機器。那么這給機器人提出來更高層次的要求,展望21世紀,機器人將是一個與20世紀計算機的普與一樣,會深入地應用到各個領域,在21世紀的前20年是機器人從制造業(yè)走向非制造業(yè)的發(fā)展一個重要時期,也是智能機器人發(fā)展的一個關鍵時期。機器人的核心是控制系統(tǒng).機器人的先進性和功能是強弱通常都直接與其控制系統(tǒng)
8、的性能有關.機器人是一項跨多學科的綜合性丟術,涉與自動控制.計算機.傳感器.人工智能.電子技術和機械工程等多種學科的容.機器人有三個方面是我們必要去發(fā)展的理由:一個是機器人干人不愿意干的事,把人從有毒的、有害的、高溫的或危險的,這樣的環(huán)境中解放出來,同時機器人可以干不好干的活,比方說在汽車生產線上我們看到工人天天拿著一百多公斤的焊鉗,一天焊幾千個點,就重復性的勞動,一方面他很累,但是產品的質量仍然很低;另一方面機器人干人干不了的活,這也是非常重要的機器人發(fā)展的一個理由,比方說人們對太空的認識,人上不去的時候,叫機器人上天,上月球,以與到海洋,進入到人體的小機器人,以與在微觀環(huán)境下,對原子分子進
9、行搬遷的機器人,都是人們不可達的工作。上述方面的三個問題,也就是說機器人發(fā)展的三個理由。根據工作環(huán)境的不同,移動機器人可以分為室外移動機器人和室移動機器人.室外移動機器人工作在室外環(huán)境中,應用于交通領域的自主陸地車(ARV) 、應用于海洋開發(fā)的深海探測機器人、以與應用于火星探險的探路者機器人等屬于室外移動機器人。室移動機器人工作在室環(huán)境中,應用在現(xiàn)代化工廠和大型物流中心的運輸機器人是它們的典型代表,近來服務和娛樂領域也提出了對智能移動機器人強烈需求,如醫(yī)院、辦公室、家庭里的服務機器人和博物館導游機器人.在20世紀70年代到20世紀80年代初期,工業(yè)機器人變成產品以后,得到全世界的普遍應用以后,
10、那么很多研究機構開始研究第二代具有感知功能的機器人,出現(xiàn)了瑞典的ABB公司,德國的KUKA機器人公司,日本幾家公司和日本的FUNAC公司,都在工業(yè)機器人方面都有很大的作為,同時我們也看到機器人的應用在不斷拓寬,它已經從工業(yè)上的一些應用,擴展到了服務行業(yè),擴展了它的作業(yè)空間,向海洋空間和服務醫(yī)療等等行業(yè)的使用。所以從這圖可以看出機器人發(fā)展的幾個過程。移動機器人的移動機構多種多樣10,可以是輪式的、步行式,履帶式的等等,采用何種移動機構要根據機器人的工作環(huán)境確定,如水下機器人和飛行機器人就需要采用專門設計的推進器做為移動機構.輪式移動機構包括從單輪式、兩輪式、三輪式、四輪式到多輪式許多類型;步行式
11、的也可分為雙足式和多足式.輪式移動機構適合平坦地形,具有結構簡單、速度快等優(yōu)點,機構設計和控制可以參考汽車技術領域的成果,在平面運動機器人中應用最為廣泛。那么機器人是人類的得力助手,能友好相處的可靠朋友,將來我們會看到人和機器人會存在一個空間里邊,成為一個互相的助手和朋友。機器人會不會產生飯碗的問題。我們相信不會出現(xiàn)“機器人上崗,工人下崗”的局面,因為人們隨著社會的發(fā)展,實際上把人們從繁重的體力和危險的環(huán)境中解放出來,使人們有更好的崗位去工作,去創(chuàng)造更好的精神財富和文化財富,機器人來做這些危險環(huán)境的工作,展望21世紀機器人將是一個與20世紀計算機的普與一樣,會深入地應用到各個領域,所以很多專家
12、預測,在21世紀的前20年是機器人從制造業(yè)走向非制造業(yè)的發(fā)展一個重要時期,也是智能機器人發(fā)展的一個關鍵時期,目前國際上很多國家,也對機器人對人類社會的影響的估計提出了新的認識,同時,我們也可以看到機器人技術,涉與到多個學科,機械、電工、自動控制、計算機測量、人工智能、傳感技術等等,它是一個國家高技術實力的一個重要標準。1.2 嵌入式系統(tǒng)現(xiàn)狀和發(fā)展1.2.1嵌入式系統(tǒng)的定義關于嵌入式系統(tǒng)的定義,一般認為嵌入式系統(tǒng)是以應用為中心,以計算機技術為基礎,并且軟硬件可裁剪,適用于應用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統(tǒng)。典型的嵌入式系統(tǒng)有各種使用x86的小型嵌入式工控主板,以與
13、使用Intel、Samsung、Motorola等專用芯片構成的小系統(tǒng)。1.2.2嵌入式系統(tǒng)的特點嵌入式系統(tǒng)可以稱為后PC時代和后網絡時代的新秀。與傳統(tǒng)的通用計算機、數(shù)字產品相比,利用嵌入式技術的產品有其自身的特點:1、由于嵌入式系統(tǒng)采用的是微處理器,獨立的操作系統(tǒng),實現(xiàn)相對單一的功能,所以往往不需要大量的外圍器件,因而在體積上,功耗上有其自身的優(yōu)勢。2、嵌入式系統(tǒng)由于空間和各種資源相對不足,硬件和軟件都必須高效率地設計,力爭在同樣的硅片面積上實現(xiàn)更高的性能。3、嵌入式系統(tǒng)為了提高執(zhí)行速度和系統(tǒng)可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲器芯片或單片機本身中,而不是存貯于磁盤等載體中。4、為適應
14、嵌入式分布處理結構和應用上網需求,嵌入式系統(tǒng)要求配備一種或多種標準的網絡通信接口。1.2.3嵌入式系統(tǒng)的兩大分支由于嵌入式計算機系統(tǒng)要嵌入到對象體系中,實現(xiàn)的是對象的智能化控制,因此,它有著與通用計算機系統(tǒng)完全不同的技術要求與技術發(fā)展方向。通用計算機系統(tǒng)的技術要高速、海量的數(shù)值計算;技術發(fā)展方向是總線速度的無限提升,存儲容量的無限擴大。而嵌入式計算機系統(tǒng)的技術要求則是對象的智能化控制能力;技術發(fā)展方向是與對象系統(tǒng)密切相關的嵌入性能、控制能力與控制的可靠性。早期,人們勉為其難地將通用計算機系統(tǒng)進行改裝,在大型設備中實現(xiàn)嵌入式應用。然而,對于眾多的對象系統(tǒng)(如家用電器、儀器儀表、工控單元),無法嵌
15、入通用計算機系統(tǒng),況且嵌入式系統(tǒng)與通用計算機系統(tǒng)的技術發(fā)展方向完全不同,因此,必須獨立地發(fā)展通用計算機系統(tǒng)與嵌入式計算機系統(tǒng),這就形成了現(xiàn)代計算機技術發(fā)展的兩大分支。如果說微型機的出現(xiàn),使計算機進入到現(xiàn)代計算機發(fā)展階段,那么嵌入式計算機系統(tǒng)的誕生,則標志了計算機進入了通用計算機系統(tǒng)與嵌入式計算機系統(tǒng)兩大分支并行發(fā)展時代,從而導致20世紀末,計算機的高速發(fā)展時期。1.2.4嵌入式系統(tǒng)的發(fā)展趨勢嵌入式計算機系統(tǒng)起源于微型機時代,但很快就進入到獨立發(fā)展的單片機時代。在單片機時代,嵌入式系統(tǒng)以器件形態(tài)迅速進入到傳統(tǒng)電子技術領域中,以電子技術應用工程師為主體,實現(xiàn)傳統(tǒng)電子系統(tǒng)的智能化,而計算機專業(yè)隊伍并
16、沒有真正進入單片機應用領域。因此,電子技術應用工程師以自己習慣性的電子技術應用模式,從事單片機的應用開發(fā)。這種應用模式最重要的特點是:軟、硬件的底層性和隨意性;對象系統(tǒng)專業(yè)技術的密切相關性;缺少計算機工程設計方法。雖然在單片機時代,計算機專業(yè)淡出了嵌入式系統(tǒng)領域,但隨著后PC時代的到來,網絡、通信技術得以發(fā)展;同時,嵌入式系統(tǒng)軟、硬件技術有了很大的提升,為計算機專業(yè)人士介入嵌入式系統(tǒng)應用開辟了廣闊天地。計算機專業(yè)人士的介入,形成的計算機應用模式帶有明顯的計算機的工程應用特點,即基于嵌入式系統(tǒng)軟、硬件平臺,以網絡、通信為主的非嵌入式底層應用。由于嵌入式系統(tǒng)最大、最廣、最底層的應用是傳統(tǒng)電子技術領
17、域的智能化改造,因此,以通曉對象專業(yè)的電子技術隊伍為主,用最少的嵌入式系統(tǒng)軟、硬件開銷,以8位機為主,帶有濃重的電子系統(tǒng)設計色彩的電子系統(tǒng)應用模式會長期存在下去。另外,計算機專業(yè)人士會愈來愈多地介入嵌入式系統(tǒng)應用,但囿于對象專業(yè)知識的隔閡,其應用領域會集中在網絡、通信、多媒體、商務電子等方面,不可能替代原來電子工程師在控制、儀器儀表、機械電子等方面的嵌入式應用。因此,客觀存在的兩種應用模式會長期并存下去,在不同的領域中相互補充。電子系統(tǒng)設計模式應從計算機應用設計模式中,學習計算機工程方法和嵌入式系統(tǒng)軟件技術;計算機應用設計模式應從電子系統(tǒng)設計模式中,了解嵌入式系統(tǒng)應用的電路系統(tǒng)特性、基本的外圍
18、電路設計方法和對象系統(tǒng)的基本要求等。由于嵌入式系統(tǒng)有過很長的一段單片機的獨立發(fā)展道路,大多是基于8位單片機,實現(xiàn)最底層的嵌入式系統(tǒng)應用,帶有明顯的電子系統(tǒng)設計模式特點。大多數(shù)從事單片機應用開發(fā)人員,都是對象系統(tǒng)領域中的電子系統(tǒng)工程師,加之單片機的出現(xiàn),立即脫離了計算機專業(yè)領域,以“智能化”器件身份進入電子系統(tǒng)領域,沒有帶入“嵌入式系統(tǒng)”概念。因此,不少從事單片機應用的人,不了解單片機與嵌入式系統(tǒng)的關系,在談到“嵌入式系統(tǒng)”領域時,往往理解成計算機專業(yè)領域的,基于32位嵌入式處理器,從事網絡、通信、多媒體等的應用。這樣,“單片機”與“嵌入式系統(tǒng)”形成了嵌入式系統(tǒng)中常見的兩個獨立的名詞。但由于“單
19、片機”是典型的、獨立發(fā)展起來的嵌入式系統(tǒng),從學科建設的角度出發(fā),應該把它統(tǒng)一成“嵌入式系統(tǒng)”??紤]到原來單片機的電子系統(tǒng)底層應用特點,可以把嵌入式系統(tǒng)應用分成高端與低端,把原來的單片機應用理解成嵌入式系統(tǒng)的低端應用,含義為它的底層性以與與對象系統(tǒng)的緊耦合。1.3 ARM概述與其應用領域1.3.1 ARM概述ARM(Advanced RISC Machines)是一類處理器,同時也是一個公司的名字.ARM公司于1990年11月在英國劍橋成立,它是全球領先的16/32位嵌入式RISC微處理器解決方案供應商,向全球各大領先電子公司提供高性能.低成本和高效率的RISC處理器.外設和系統(tǒng)芯片技術授權.A
20、RM公司設計先進的數(shù)字產品核心應用技術,應用領域涉與無線.網絡.消費娛樂.影像.汽車電子.安全應用與存儲裝置.ARM提供廣泛的產品,包括16/32位RISC微處理器.數(shù)據引擎.三維圖形處理器.數(shù)字單元庫.嵌入式存儲器.外設.軟件.開發(fā)工具以與模擬和高速連接產品.ARM公司協(xié)同眾多技術合作伙伴為業(yè)界提供快速.穩(wěn)定的完整系統(tǒng)解決方案.1.3.2 ARM的應用領域1 、工業(yè)控制領域:作為 32 的 RISC 架構,基于 ARM 核的微控制器芯片不但占據了高端微控制器市場的大部分市場份額,同時也逐漸向低端微控制器應用領域擴展, ARM 微控制器的低功耗、高性價比,向傳統(tǒng)的 8 位 /16 位微控制器提
21、出了挑戰(zhàn)。2 、無線通訊領域:目前已有超過 85% 的無線通訊設備采用了 ARM 技術, ARM 以其高性能和低成本,在該領域的地位日益鞏固。3 、消費類電子產品: ARM 技術在目前流行的數(shù)字音頻播放器、數(shù)字機頂盒和游戲機中得到廣泛采用。4 、成像和安全產品:現(xiàn)在流行的數(shù)碼相機和打印機中絕大部分采用 ARM 技術。手機中的 32位 SIM 智能卡也采用了 ARM 技術。 1.4 我們的課題1.4.1整體研究方向綜合移動機器人開發(fā)的可行性,我們把課題的方向定位自主移動機器人小車的軟硬件研究。1.4.2機器人實現(xiàn)方法和實現(xiàn)過程以S3C44B0X實驗板為平臺,以與避障系統(tǒng)和運動控制系統(tǒng)兩部分結合起
22、來構成整個移動機器人最主要的硬件部分。其中,實驗板為移動機器人的中樞神經部分,它承擔著對于外部硬件的全權管理(包括接收外部硬件的傳遞過來的信息,對信息進行相應的處理,以與把處理后的信息再傳遞給外部硬件);避障系統(tǒng)為整個機器人系統(tǒng)的感應部分,一切外界環(huán)境的識別都有避障系統(tǒng)來完成;運動控制系統(tǒng)為整個機器人系統(tǒng)的移動部分,它承擔著讓機器人能自由的在物理環(huán)境中移動的功能。1.4.3 實現(xiàn)過程以S3C44B0開發(fā)板構建整個機器人的中樞神經,主要是采用嵌入式操作系統(tǒng)來管理。這里具體工作主要包括將uClinux操作系統(tǒng)移植入ARM,以與在操作系統(tǒng)下編寫外部驅動程序來識別和控制外圍硬件(主要是避障系統(tǒng)和運動控
23、制系統(tǒng))。避障系統(tǒng)設計:采用紅外線來實現(xiàn)避障(電路設計,調試)。運動控制系統(tǒng)設計:采用直流電機來實現(xiàn)機器人的移動功能(電路設計,調試)。軟件設計部分:主要是應用程序配合外部硬件驅動程序。下文將詳細介紹軟件實現(xiàn)的具體方法和實現(xiàn)代碼。2 自主行走機器人的行走控制方案2.1 直流電機的控制方案一個電動小車整體的運行性能,首先取決于它的電池系統(tǒng)和電機驅動系統(tǒng)。電動小車的驅動系統(tǒng)一般由控制器、功率變換器與電動機三個主要部分組成。電動小車的驅動不但要求電機驅動系統(tǒng) 具有高轉矩重量比、寬調速圍、高可靠性,而且電機的轉矩-轉速特性受電源功率的影響,這就要求驅動具有盡可能寬 的高效率區(qū)。我們所使用的電機一般為直
24、流電機,主要用到永磁直流電機、伺服電機與步進電機三種。直流電機的控制很簡單,性能出眾,直流電源也容易實現(xiàn)。這里主要介紹這種直流電機的驅動與控制。2.2 驅動電路2.2.1驅動芯片介紹L298是ST公司生產的一種高電壓、大電流電機驅動芯片,直接采用,TTL邏輯電平控制,可用來驅動繼電器、線圈、直流電動機、步進電動機等電感性負載。該芯片的主要特點是:工作電壓高,最高工作電壓可達46V;輸出電流大,瞬間峰值電流可達3A,持續(xù)工作電流為2A;含兩個H橋的高電壓大電流全橋式驅動器,可以用來驅動直流電動機和步進電動機、繼電器、線圈等感性負載;采用標準TTL邏輯電平信號控制;具有兩個使能控制端,在不受輸入信
25、號影響的情況下允許或禁止器件工作有一個邏輯電源輸入端,使部邏輯電路部分在低電壓下工作;可以外接檢測電阻,將變化量反饋給控制電路。其芯片原理結構圖如下: 原理圖2.2.2 驅動電路直流電機驅動電路使用最廣泛的就是H型全橋式電路,這種驅動電路可以很方便實現(xiàn)直流電機的四象限運行,分別對應正轉、正轉制動、反轉、反轉制動。 它的基本原理圖如圖1所示: 全橋式驅動電路的4只開關管都工作在斬波狀態(tài),S1、S2為一組,S3、S4 為另一組,兩組的狀態(tài)互補,一組導通則另一組必須關斷。當S1、S2導通時,S3、 S4關斷,電機兩端加正向電壓,可以實 現(xiàn)電機的正轉或反
26、轉制動;當S3、S4導 通時,S1、S2關斷,電機兩端為反向電壓,電機反轉或正轉制動。我們采用部集成有兩個橋式電路的專用芯片L298所組成的電機驅動電路。驅動芯片L298是驅動二相和四相步進電機的專用芯片,我們利用它部的 橋式電路來驅動直流電機,這種方法有一系列的優(yōu)點。每一組PWM波用來控制一個電機的速度,而另外兩個I/O口可以控制電機的正反轉,控制比較簡單,電路也很簡單,一個芯片包含有8個功率管,這樣簡化了電路的復雜性,如圖所示IOB10、IOB11控制第一個電機的方向,IOB8輸入的PWM控制第一個電機的速度;IOB12、IOB13控制第二個電機的方向,IOB9輸入的PWM控制第二個電機的
27、速度。此部分是單純的硬件設計,沒涉與到軟件方面,但是實現(xiàn)驅動電機的功能時,我們軟件輸出必須通過驅動電路來實現(xiàn)驅動。所以這個部分和軟件設計也是密不可分的一個環(huán)節(jié)。3 避障系統(tǒng)設計3.1 常用避障電路的實現(xiàn)方法 機器人小車避障電路設計常用的方法有兩類:一種是超聲波發(fā)射,接收傳感器;另一種是紅外線發(fā)射傳感器。超聲波指向性強,能量消耗緩慢,在介質中傳播的距離較遠,因而超聲波經常用于距離的測量,但超聲波技術受干擾影響比較大。采用紅外線技術設計避障電路,主要優(yōu)點是廉價,而且,紅外線常用于遙控電路,技術比較常熟,電路電路設計也比較簡單,但是,它的避碰距離不是很遠,一般最遠也不會超過1m??紤]到實驗室的條件以
28、與技術實用性,本項目主要采用的是紅外線技術設計避障電路。32 紅外線避障系統(tǒng)的實現(xiàn)3.2.1紅外線避障電路基本原理紅外線是一種波長在750mm至lmm之間的電磁波,對障礙物的衍射能力差,抗干擾性能強,此外紅外通訊有著成本低廉、連接方便、簡單易用和結構緊湊的特點,所以得到廣泛的應用,許多企業(yè)、學校都專門開設課程介紹紅外遙控的原理,但常缺乏演示裝置,使得學習過程中對其控制信號的傳輸流程不明了,授課效果差、本文設計一套以紅外線為控制指令信號載體的紅外發(fā)射、接收演示裝置,能完整演示紅外發(fā)射與接收信號,達到輔助教學的目的.采用紅外線技術設計避障電路方法一般有兩種11,一種是基于紅外線發(fā)射二級管和紅外線接
29、收二級管來設計;另外一種是基于紅外線發(fā)射二極管以與紅外線接收頭來設計,兩種方法的最大區(qū)別就在于接收電路,前者主要是要自行設計出紅外接收二極管的接收電路,而后者用到的紅外接收頭部就是一個接收電路,所以后者就比較簡潔,而且效果比前者要好的多。3.2.3紅外發(fā)射軟件中斷設計紅外線設置檢測到障礙后會向ARM的中斷寄存器發(fā)送一個高低電平的脈沖信號,我們軟件通過讀取這個電平脈沖來調用電機的轉彎程序,以實現(xiàn)小車的避障功能。軟件設計過程中,我把寄存器PCONG設置為控制寄存器,將PDATG設置成數(shù)字寄存器,通過改變PCONG的 高低電平來獲得PDATG的數(shù)值,如果是高電平,保持原來的轉速,即沒遇到障礙,如果是
30、低電平就調用電機轉彎的程序。程序實現(xiàn)如下:#include <stdio.h>#include <stdlib.h>#include<unistd.h>#include<fcntl.h>#include<linux/rtc.h>#include<linux/ioctl.h>#include <linux/errno.h>#include <linux/fs.h>#define PCONG(*(volatile unsigned *)0x01d20040) /定義地址#define PDATG(*(v
31、olatile unsigned *)0x01d20044) /定義地址int value2;typedef unsigned long U32;void delay(U32 time)while(time-);int start_motor(int r ,int l)int fd,i;U32 times1,times2; value0=r; value1=l;fd=open("/dev/motor_drv",O_RDWR); /打開電機驅動程序if(fd=-1)perror("open");exit(-1); write(fd,value,2*size
32、of(int);delay(10000);close(fd);return 0;int main()int i;PCONG &= 0xfffffff3;/*PG1->input*/while(1) if(PDATG & 0X00000002) /*HIGH LEVEL*/printf("紅外線沒檢測到障礙n");else printf("紅外線檢測障礙n");/*call the motor driver*/start_motor(50,0); /*調用電機左轉程序*/ sleep(1); start_motor(50,50); r
33、eturn 0;這個方案是通過應用程序直接讀取寄存器數(shù)據來實現(xiàn)中斷過程,實際上還可以通過系統(tǒng)的中斷控制來設置寄存器的值,然后再調用中斷程序實現(xiàn)想要的結果,第二個方案比較復雜,而且還涉與到系統(tǒng)的驅動程序調用,實現(xiàn)過程中的中斷感應可能存在問題,所以本次項目還是運用了應用程序的實現(xiàn)。4 速度測量實時反饋4.1 方案總述S3C44B0X本身不具有外部脈沖計數(shù)功能,可利用可編程定時計數(shù)器82C54在S3C44B0X系統(tǒng)中實現(xiàn)測量電機轉速.在機器人控制中,我們需要知道它的狀態(tài),這就需要測量.對于機器人行走常需要分時或連續(xù)測量和顯示其轉速與瞬時轉速為了能精確地測量轉速外,還要保證測量的實時性,要求能測得瞬時
34、轉速轉速測量方法分為模擬式和數(shù)字式兩種,模擬式采用測速發(fā)電機為檢測元件,得到的信號是電壓量,而數(shù)字式通常采用光電編碼器、圓光柵、霍爾元件等為檢測元件,得到的信號是脈沖信號隨著微型計算機的廣泛應用,特別是高性能價格比的單片機的涌現(xiàn),轉速測量普遍采用了以單片機為核心的數(shù)字法,智能化微電腦式代替了一般機械式或模擬量結構.4.2 方案選擇和實施4.2.1 選擇方案在我們的這個項目中選用霍爾集成元件作為傳感器,主要因為它本身不怕灰塵,適合露天場地,且體積小,價格便宜,可單電源供電,使用極其方便,因此本測量系統(tǒng)轉速信號檢測點采用霍爾集成傳感器作為轉速檢測探頭4.2.2 任務實施把探頭(霍爾元件)固定在距齒
35、輪外圓lmm的支架上3,在霍爾元件的正對面貼一小塊磁鋼(B>18000T,B為磁鋼強度要求),當測速齒輪的每個齒經過探頭正前方時,改變了磁通密度,探頭就輸出一個標準的脈沖信號檢測元件選用型號為CS3020開關集成霍爾傳感器此元件是OC門,因此在輸出端與電源之間要接一個電阻,4.2.3 計數(shù)模塊設計鑒于S3C44B0X本身不具有外部脈沖計數(shù)功能,需要在已有的硬件資源基礎上擴展外圍電路。利用可編程定時計數(shù)器82C54是個很好的選擇。Intel 82C54是專用的可編程定時計數(shù)芯片15,82C54通過對加在其cLK 輸入引腳的脈沖進行計數(shù), 脈沖最高頻率可以達到10MHz, 使用靈活,功能強大
36、。采用82C54對系統(tǒng)外圍進行硬件設計。S3C44B0X的數(shù)據線D0D7通過74LVCA245接82C54的數(shù)據線,74LVCA245的作用是實現(xiàn)了CPU 的33V 電壓和82C54的5V 電壓的穩(wěn)定轉換。片選可使用S3C44B0X的任意空余片選nGCSx,如果整個系統(tǒng)還有其他外圍電路需要較多片選,也可利用S3C44B0X的地址線接74HC138譯碼器擴展出多路片選信號供系統(tǒng)其它資源使用。4.2.4軟件實現(xiàn) 應用程序通過對82C54工作方式,通道和中斷信號等的設置,來讀取D0D7的八位數(shù)據,下面是實現(xiàn)的部分代碼:Speed.c#include <linux/init.h>#incl
37、ude <asm/segment.h> #include <linux/mm.h>#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/types.h>#include <linux/slab.h>#include <asm/uaccess.h>#include <asm/system.h>#include <linux/errno.h>#include &
38、lt;linux/config.h>#define rPCONA(*(volatile unsigned *)0x1d20000)#define rPDATA(*(volatile unsigned *)0x1d20004)#define rPCONC(*(volatile unsigned *)0x1d20010)#define rPDATC(*(volatile unsigned *)0x1d20014)#define rPUPC(*(volatile unsigned *)0x1d20018)/* interrupt */#define rINTCON(*(volatile uns
39、igned *)0x01e00000) #define rINTPND(*(volatile unsigned *)0x01e00004) #define rINTMOD(*(volatile unsigned *)0x01e00008) #define rINTMSK(*(volatile unsigned *)0x01e0000c)#define rI_ISPC(*(volatile unsigned *)0x01e00024)#define rI_PSLV(*(volatile unsigned *)0x01e00010)#define rI_PMST(*(volatile unsign
40、ed *)0x01e00014)#define rPCONG(*(volatile unsigned *)0x01d20040) #define rPUPG(*(volatile unsigned *)0x01d20048) #define rEXTINT(*(volatile unsigned *)0x01d20050) #define rPDATG(*(volatile unsigned *)0x01d20044) /*#define BaseAddr (*(volatile unsigned *)0xa000000)/* 8253 control word */#define 8253_
41、COM(*(volatile unsigned *)0xa00000e)/* Write counter 0 */#define 8253PA_W(*(volatile unsigned *)0xa000008)/* Write counter 1 */#define 8253PB_W(*(volatile unsigned *)0xa00000a)/* Write counter 2 */#define 8253PC_W(*(volatile unsigned *)0xa00000c)/* Read counter 0 */#define 8253PA_R(*(volatile unsign
42、ed *)0xa000000)/* Read counter 1 */#define 8253PB_R(*(volatile unsigned *)0xa000002)/* Read counter 2 */#define 8253PC_R(*(volatile unsigned *)0xa000004)int main(int argc ,char *argv)rPCONA = 0x3ff;/*set port_A function 2(address bus)*/rPCONC = 0xaaaaaaaa;/*set port_C function 2(data bus)*/8253_COM
43、= 0x30;/*select Counter 0 , Mode 0 , Binary counter*/8253PA_W = 0xfe;/*write low-eight bit*/8253PA_W = 0xff;/*write high-eight bit*/8253_COM = 0x70;/*select Counter 1 , Mode 0 , Binary counter*/8253PB_W = 0xfe;/*write low-eight bit*/8253PB_W = 0xff;/*write high-eight bit*/rINTCON = 0x0;rINTMOD = 0x0
44、;rINTMSK = 0x0;int i=1000000;unsigned short j;unsigned char data;while(i-);8253_COM = 0x00;data = 8253PA_R;j = 8253PA_R;j = (j<<8 | data);printf("j= %dn",j); return 0;這個部分的實現(xiàn)其實也可以通過應用程序調用相應的驅動程序來實現(xiàn),但只是為了實現(xiàn)功能的話,我這個應用程序已經可以實現(xiàn)了,而驅動程序的編寫又涉與到核的調用,所以為了保險,我們還是選者了應用程序。5 ARM開發(fā)平臺與uClinu操作系統(tǒng)的設計
45、5.1 ARM開發(fā)平臺介紹ARM系列是一種32位的嵌入式RISC處理器它具有低電壓、低功耗和低集成度等特點,并具有開放性和可擴性,已經成為嵌入式系統(tǒng)首選的處理器架構S3C44B0是三星公司推出的一款為手持設備或其他通用設備而開發(fā)的1632位處理器,它基于ARM7TDMI核,沒有存管理單元(MMU)uClinux是專門應用于無MMU微處理器的Linux衍生操作系統(tǒng)具有支持多任務、核精簡、高效、穩(wěn)定等優(yōu)點移植基本容是:獲取某一版本的Linux核源碼,根據目標平臺對源碼中與體系結構相關部分進行修改,然后添加一些外設驅動,對該系統(tǒng)進行針對目標平臺的交叉編譯,生成一個核映像文件,最后把該映像文件燒寫到目
46、標平臺中本目標平臺-2 采用S3C44B0 作為處理器;采用2MB(0x0000000xlfffff)線性FLASH作為引導代碼、uClinux鏡像文件和ROMFS文件系統(tǒng)的存儲器;采用8MB(0xc0000000xc7fffff)SDRAM作為引導代碼、Linux映像文件和應用程序的可讀寫存儲器.5.1.1 基本設置首先,要了解一下如何通過串口終端與ARM板進行通信,將隨板配帶的串口線(DB9 為雙母,直連)一端接FS44B0X 開發(fā)板的COM1,串口線的另一端接電腦的COM1(或COM2),接好后,在PC機上打開一個超級終端。在linux下,打開gnome終端,在命令行里輸入minicom
47、 s,見圖5.2所示。然后對串口終端進行一下配置。選中Serial port setup,看到圖5.3所示,按照要求配置串口功能屬性。保存退出。鍵入minicom,給ARM開發(fā)板上電,看到圖5.4所示,在命令行模式下鍵入ap,設置。這樣linux的串口終端便建立起來了(這樣,在linux操作系統(tǒng)下,uclinux核鏡像image.rom可以直接通過該串口燒寫入ARM目標板)。圖5.1 linux終端下的串口初始化圖5.2 linux下串口基本屬性設置圖5.3 串口顯示ARM板基本信息圖5.3 串口顯示bios基本命令ap信息網線:將交叉網線一頭接ARM板,另一頭接PC機網口,開發(fā)板的IP 地址
48、192.168.77.66,所以,請將PC機的IP地址設為192.168.0.X,我把PC機的IP地址設為192.168.77.77,子網掩碼設置為255.255.0.0接下來,要注意,打開串口終端,在讓ARM板上電,在終端命令行模式/>下,鍵入命令ap,可以在PC機的Run里輸入ping 192.168.77.66 t試試能不能ping通目標ARM板。5.1.2 交叉環(huán)境的建立交叉編譯是利用運行在某機器上的編譯器編譯某個源程序生成在另一臺機器上運行的目標代碼的過程 開發(fā)工具主要有IDE集成開發(fā)環(huán)境和Makefile方式,前者如Windows中的Linux View和CodeWarrio
49、r等,有良好的用戶界面,并且易于管理和控制項目的開發(fā)后者如Linux Kernel的開發(fā),支持腳本的功能非常強大通常應用程序的開發(fā)使用集成開發(fā)環(huán)境,核的編譯使用Makefile方式建立編譯核的交叉編譯環(huán)境主要用到的開發(fā)工具包括3部分:binutils、gcc、glibe其中,binutils是二進制文件的處理工具;gcc是編譯工具;glibe是和運行庫若網上下載的是源代碼包,需要經過GCC的編譯才能應用;若是應用程序包,安裝后即可使用為了快速建立交叉環(huán)境,可以從網上直接下載 arm-elf-binutils-2.11-3.i386.rpmarm-elf-gcc-2.95.3-2.i386.rp
50、marm-elf-gdb-5.0-1.i386.rpmgrnromfs-0.5.1-1.i386.rpmarm-elf-tools-20030314.sh文件在Linux下運行rpm ivh *.rpm命令,安裝gcc、binutils等交叉編澤工具,在Linux下運行./arm-elf-tools-20030314.sh命令,在開發(fā)主機上便會自動建立一個uClinuxARM的交叉編譯環(huán)境5.2 uClinux核編譯ARM上的uclinux操作系統(tǒng)是出廠前就被開發(fā)人員燒入的14,很多功能都不具備,編譯uclinux核的目的,不僅僅在于學習怎樣編譯核,還在于通過配置來完善uclinux操作系統(tǒng)5
51、.2.1 uClinux核結構在解壓后核下的文件目錄如下: /bin存入用戶最常有的基本程序 /config存入uclinux的結構文件 /Document存入uclinux的HowTo文檔和FAQ文檔 /images用于存放編譯后生成的文件 /lib存放各類庫 /linux-2.0存放linux-2.0版本的核文件 /linux-2.4存放linux-2.4版本的核文件/linux-2.6存放linux-2.6版本的核文件/romfs為編譯后文件系統(tǒng)/tools存放工具說明文檔和其他文檔/ulibc存放uclinux的庫文件/user存放用戶的應用程序/venders存放有關各種處理器文件/
52、etc用來存放系統(tǒng)管理所需要的配置文與子目錄5.2.2 uClinux核編譯第一步,把核源碼包uClinux-44b0.tar.gz以與ARM交叉編譯工具arm-elf-tools-20030314.sh下載到一個目錄下(我這里選擇/home)。第二步,進入linux下/home目錄,運行 ./arm-elf-tools-20030314.sh此步主要是建立交叉編譯環(huán)境。第三步,解壓uClinux源碼包,用命令tar -zxvf uClinux-44b0.tar.gz 它會在當前目錄釋放uClinuxdist文件夾。第四步.在gnome終端下,進入cd /home/uClinux-dist目錄
53、,鍵入命令Make xconfig ,看到圖5.4所示: 圖5.4 uclinux配置窗口 在圖5.4所示界面上單擊 Target Platform Selection 進入目標平臺選擇界面,如圖5.5所示:圖5.5 基本平臺選擇界面進入如圖5.6所示界面之后,選擇samsung/4510B作為模擬硬件開發(fā)平臺,選擇uClibc,是核套用該標準c庫。接著就可以選中以下幾項來配置核,用戶應用程序以與升級現(xiàn)有的應用程序。在保存完剛才的配置之后,會進入以下操作界面,如圖5.6所示:圖5.6 應用程序配置向導在該操作界面上,可以來進一步對應用程序進行配置,從而獲得最理想的uclinux核。若用戶自己創(chuàng)
54、建了一個應用程序,可以選中My Application,進入如圖5.7所示界面:圖5.7 添加自己的應用程序配置向導這個界面說明,已經成功選中了自己設計的應用程序,接下去,就是對配置好的新核進行編譯,如下:make dep 編譯相關的配置文件 make lib_only 編譯生成library make user_only編譯生成用戶空間應用程序,每次修改應用程序后,以后幾步必須重來 make romfs 編譯生成uclinux系統(tǒng)的具體系統(tǒng)架構(目錄,文件) make image 生成romfs.image image.rom image.rom這一步你會遇到一些錯誤信息,不過可以忽略,它只
55、會出現(xiàn)一次(在第一次編譯時發(fā)生),以后就正確了。make 執(zhí)行編譯最后,在image目錄中產生了romfs.img,uclinux_ram.bin.gz和uclinux_rom.bin,它們分別:romfs.img-root根文件系統(tǒng)ROMFS映像文件uclinux_ram.bin.gz-下載到開發(fā)平臺RAM區(qū)執(zhí)行文件uclinux_rom.bin-燒制到開發(fā)平臺Flash區(qū)的文件5.2.3為S3C44B0X添加自己的應用程序step 1: 首先認真閱讀uClinux-dist的目錄的Documentation/Adding-User-Apps-HOWTO.txt ,通過閱讀該文檔可以自己動手創(chuàng)建一個application。step 2: 創(chuàng)建一個自己的application后,在Linux操作系統(tǒng)(Fedora等)上先編譯,通過執(zhí)行arm-elf-gcc c 應用程序名來驗證是否有錯誤。但是這個在PC上可以運行的"可執(zhí)行文件"卻還不是基于ARM環(huán)境的"可執(zhí)行程序/文件",因為PC平臺使用的文件系統(tǒng)和ARM板的uClinux使用的文件系統(tǒng)不一樣,uClinux的ROMFS格式的可執(zhí)行文件是不能被PC上的Linux(Fedora等)所認識的。比如一個簡單的應用程序文件hello.c,以下是它的容:#include
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 44925-2024月球采樣樣品分樣和保存要求
- 2024水井承包工程合作協(xié)議書(含水質監(jiān)測)3篇
- 陜西省渭南市2025年中考語文模擬試卷二套【附參考答案】
- 2024年飯店運營合作承包合同稿版
- 2不一樣的你我他 說課稿-2023-2024學年道德與法治三年級下冊統(tǒng)編版
- 2024年計算機維修服務保密協(xié)議范本版B版
- 11 空氣占據空間嗎 說課稿-2023-2024學年科學三年級下冊人教鄂教版
- 18古詩三首 江南春 說課稿-2024-2025學年語文六年級上冊統(tǒng)編版
- 2024年飛機購置合同范本
- 2025年度智慧農業(yè)物聯(lián)網技術應用合同范本2篇
- 封條模板完整
- 土壤肥料學:第一章-肥料學概述課件
- 焊接工藝簡述課件
- 社工入戶探訪操作手冊
- 古樹名木保護建設項目可行性研究報告
- 一年級科學上冊教學工作總結
- 醫(yī)院體檢報告范本
- 廣東省韶關市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細
- 無土栽培與植物工廠化課件
- 新概念英語第一冊單詞匯總打印版
- 刀模檢測、保養(yǎng)記錄
評論
0/150
提交評論