下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于uclinux的can總線嵌入式驅(qū)動(dòng)編程介紹了uclinux 操作系統(tǒng)的內(nèi)核結(jié)構(gòu)以及設(shè)備驅(qū)動(dòng)編程的基本原理,并對(duì)can 的系統(tǒng)舉行了硬件設(shè)計(jì)及軟件驅(qū)動(dòng)編程,提出can 總線技術(shù)應(yīng)用于嵌入式系統(tǒng)的一種計(jì)劃。1 引言早期應(yīng)用于八位軟件設(shè)計(jì)的嵌入式系統(tǒng)主要為前后臺(tái)系統(tǒng)(或超循環(huán)系統(tǒng)),程序大約在幾千行以內(nèi),由兩部分組成,即其應(yīng)用程序是一個(gè)無限的循環(huán),循環(huán)中調(diào)用函數(shù)完成相應(yīng)的操作,屬于后臺(tái)行為;其中斷服務(wù)程序處理異步大事,屬于前臺(tái)行為.隨著嵌入式系統(tǒng)功能越來越龐雜,如友好的人機(jī)界面、網(wǎng)絡(luò)化、遠(yuǎn)程監(jiān)控等.各種任務(wù)的優(yōu)先級(jí)不同,傳統(tǒng)的設(shè)計(jì)辦法無法完成,程序長達(dá)數(shù)萬行,程序員必需同繁瑣的底層硬件打交道,
2、這樣效率低下.現(xiàn)代技術(shù)的進(jìn)展為嵌入式微處理器提供了更多的外設(shè),通用的如串口、并口、以太網(wǎng)口、現(xiàn)場總線、口等.基于免費(fèi)自由軟件進(jìn)展而來的嵌入式系統(tǒng)uclinux,是一種免費(fèi)的嵌入式操作系統(tǒng).uclinux系統(tǒng)具有內(nèi)核小、效率高、源碼開放、性能穩(wěn)定、大量的開發(fā)工具、良好的開發(fā)環(huán)境等特點(diǎn),并且各種應(yīng)用程序豐盛,是舉行嵌入式系統(tǒng)開發(fā)的最優(yōu)秀工具之一.2 uclinux操作系統(tǒng)簡介uclinux 系統(tǒng)主要由用戶進(jìn)程、系統(tǒng)調(diào)用接口、uclinux 內(nèi)核、硬件控制器等四部分組成.用戶進(jìn)程是用戶按照自己的設(shè)計(jì)和功能要求開發(fā)的應(yīng)用程序,通過調(diào)用系統(tǒng)的功能函數(shù)來實(shí)現(xiàn)系統(tǒng)功能;系統(tǒng)調(diào)用接口通過系統(tǒng)調(diào)用實(shí)現(xiàn)用戶與系統(tǒng)
3、內(nèi)核的接口,這些調(diào)用和服務(wù)也可以看成是系統(tǒng)內(nèi)核的一部分;uclinux 內(nèi)核是操作系統(tǒng)的靈魂,它抽象了許多硬件詳情,將全部的硬件抽象成統(tǒng)一的虛擬接口,使程序可以以一種統(tǒng)一的方式舉行數(shù)據(jù)處理,它主要包括基于優(yōu)先級(jí)的進(jìn)程調(diào)度、內(nèi)存管理、文件系統(tǒng)、網(wǎng)絡(luò)接口、進(jìn)程間通訊等五部分;硬件控制器則包含了系統(tǒng)需要的全部可能的物理設(shè)備.以上四個(gè)部分之間的每個(gè)子系統(tǒng)都只能跟鄰近的系統(tǒng)舉行通信。uclinux 的設(shè)備管理系統(tǒng)是嵌入式操作系統(tǒng)的重要組成部分,它可以分為:下層、與設(shè)備相關(guān)的,即所謂的設(shè)備驅(qū)動(dòng)程序,挺直與相應(yīng)的設(shè)備打交道,并向上提供一組拜訪接口;以及上層、與設(shè)備無關(guān),按照輸入輸出哀求,通過特定設(shè)備驅(qū)動(dòng)提供
4、的接口,與設(shè)備舉行通信.如通用的串口、網(wǎng)卡等驅(qū)動(dòng)程序在uclinux 中都可以找到.3 uclinux驅(qū)動(dòng)編程原理uclinux嵌入式系統(tǒng)不能象linux一樣動(dòng)態(tài)加載驅(qū)動(dòng)程序模塊,而只能同內(nèi)核一起編譯,與應(yīng)用程序、其他驅(qū)動(dòng)程序一起固化到可擦寫的flash上,驅(qū)動(dòng)程序長駐內(nèi)存,是靜態(tài)驅(qū)動(dòng)程序.uclinux系統(tǒng)按照設(shè)備性質(zhì)的不同,將設(shè)備分為四種類型:字符設(shè)備(char)、塊設(shè)備(block)、網(wǎng)絡(luò)接口( net )和其他設(shè)備驅(qū)動(dòng)程序模塊.在下載的uclinux源代碼包中,可以在uclinux/linux/drivers名目下面看到通用設(shè)備如char,block, net, cdrom, scsi
5、, sound等.系統(tǒng)對(duì)于每個(gè)設(shè)備都對(duì)應(yīng)一個(gè)主設(shè)備號(hào)和一個(gè)次設(shè)備號(hào),不同的設(shè)備可以對(duì)應(yīng)相同的主設(shè)備號(hào),應(yīng)用程序拜訪設(shè)備通過不同的次設(shè)備號(hào)來識(shí)別和區(qū)分設(shè)備.在linux系統(tǒng)/dev名目下通過輸入ls -l指令可以查到系統(tǒng)已注冊的設(shè)備,因此編寫新的驅(qū)動(dòng)程序時(shí)必需向系統(tǒng)注冊該設(shè)備.在uclinux系統(tǒng)中,通過register_chrdev函數(shù)實(shí)現(xiàn)注冊.uclinux系統(tǒng)將全部硬件抽象成虛擬的文件系統(tǒng),全部的字符設(shè)備、塊設(shè)備都支持文件操作接口,因此可以對(duì)這種虛擬的設(shè)備文件系統(tǒng)舉行文件操作.通常對(duì)設(shè)備文件舉行的操作有open、read、write、release等,即打開、讀、寫、釋放文件.每一個(gè)設(shè)備驅(qū)
6、動(dòng)程序?qū)嵸|(zhì)上是用來完成特定任務(wù)的一組函數(shù)集. 驅(qū)動(dòng)程序擁有一個(gè)稱為fileoperation 的數(shù)據(jù)結(jié)構(gòu),其中包含指向驅(qū)動(dòng)程序內(nèi)部大多數(shù)函數(shù)的指針.引導(dǎo)系統(tǒng)時(shí),內(nèi)核調(diào)用每一個(gè)驅(qū)動(dòng)程序的初始化函數(shù),將驅(qū)動(dòng)程序的主設(shè)備號(hào)以及程序內(nèi)部的函數(shù)地址結(jié)構(gòu)的指針傳輸給內(nèi)核.這樣,內(nèi)核就能通過設(shè)備驅(qū)動(dòng)程序的主設(shè)備號(hào)索引拜訪驅(qū)動(dòng)程序內(nèi)部的子程序,完成打開、讀、寫等操作.程序員常常瀕臨的一項(xiàng)工作就是為系統(tǒng)的新設(shè)備編寫驅(qū)動(dòng)程序.在現(xiàn)代控制系統(tǒng)中,為了便于數(shù)據(jù)通訊,在底層常采納現(xiàn)場總線,目前廣泛應(yīng)用于過程工業(yè)、機(jī)械工業(yè)、紡織機(jī)械、農(nóng)用機(jī)械、數(shù)控機(jī)床、醫(yī)療器械及等領(lǐng)域,下面介紹can總線應(yīng)用于嵌入式系統(tǒng)的驅(qū)動(dòng)編程.4
7、can 總線的性能特點(diǎn)can(controller area network)即控制器局域網(wǎng)絡(luò).can 總線目前已形成國際標(biāo)準(zhǔn) version2.0.該技術(shù)規(guī)范包括a 和b 兩部分.2.0a 給出了can 報(bào)文標(biāo)準(zhǔn)格式,而2.0b 給了出廠標(biāo)準(zhǔn)和擴(kuò)展兩種格式.can 總線是應(yīng)用最廣泛的現(xiàn)場總線之一,can為多主方式工作,網(wǎng)絡(luò)上任一節(jié)點(diǎn)均可在隨意時(shí)刻主動(dòng)地向網(wǎng)絡(luò)上其他節(jié)點(diǎn)發(fā)送信息,而不分主從,通信方式靈便,且無需站地址等節(jié)點(diǎn)信息;can 網(wǎng)絡(luò)上的節(jié)點(diǎn)信息分成不同的優(yōu)先級(jí),可滿足不同的實(shí)時(shí)要求;can 采納非破壞性總線仲裁技術(shù),當(dāng)多個(gè)節(jié)點(diǎn)同時(shí)向總線發(fā)送信息時(shí),優(yōu)先級(jí)較低的節(jié)點(diǎn)會(huì)主動(dòng)地退動(dòng)身送,而最
8、高優(yōu)先級(jí)的節(jié)點(diǎn)可不受影響地繼續(xù)傳輸數(shù)據(jù);can 只需通過報(bào)文濾波即可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)、一點(diǎn)對(duì)多點(diǎn)及全局廣播等幾種方式傳送接收數(shù)據(jù),無需特地的“調(diào)度”,can 的挺直通信距離最遠(yuǎn)可達(dá)10km(速率5kbps 以下);通信速率最高可達(dá)1mbps(此時(shí)通信距離最長為40m).can 上的節(jié)點(diǎn)數(shù)主要取決于總線驅(qū)動(dòng),目前可達(dá)110個(gè);采納短幀結(jié)構(gòu),傳輸時(shí)光短,受干擾概率低,具有極好的檢錯(cuò)效果;can 的通信介質(zhì)可為雙絞線、同軸電纜或光纖等.can 總線的數(shù)據(jù)通信具有突出的牢靠性、實(shí)時(shí)性和靈便性.5 can總線的嵌入式系統(tǒng)硬件設(shè)計(jì)本設(shè)計(jì)選用samsung公司的s3c4510b作為嵌入式系統(tǒng)的微處理器芯片,該處理
9、器是16/32位risc微處理控制器,內(nèi)含由公司設(shè)計(jì)的16/32位arm7tdmi risc處理器核,適用于價(jià)格及功耗敏感的場合.除內(nèi)核外,該微處理器的片內(nèi)外圍功能模塊包括:2個(gè)帶緩沖描述符的hdlc通道;2個(gè)uart通道;2個(gè)gdma通道;2個(gè)32位定時(shí)器及可編程i/o口.can控制器選用philips公司的sja1000,該芯片與pca82c200電氣兼容,帶64字節(jié)先進(jìn)先出(fifo)堆棧,兼容協(xié)議can2.0b,支持11位和29位識(shí)別碼,位速率可達(dá)1mbps,24mhz時(shí)鐘頻率,芯片內(nèi)含寄存器,可由用戶配置can總線波特率,設(shè)置驗(yàn)收屏蔽標(biāo)識(shí)碼,可配置系統(tǒng)為pelican 模式或basi
10、ccan模式,出錯(cuò)告警等.該系統(tǒng)采納82c250作為,其硬件連線(1)所示.ad0"ad7與s3c4510b的p0"p7連線,/cs接p12,ale接p13,/rd接p14,/wr接p15,/int接xintreq0.圖1 sja1000硬件連線6 驅(qū)動(dòng)軟件設(shè)計(jì)圖2 can總線初始化框圖本設(shè)計(jì)中,can總線驅(qū)動(dòng)程序是作為一個(gè)模塊放在linux/deriver/char/文件夾里面,軟件流程(2)所示,其設(shè)計(jì)具體介紹如下.模塊首先對(duì)引用的庫函數(shù)舉行申明,并且定義:define iopmod (*(volatile unsigned *)0x3ff5000)define iop
11、data (*(volatile unsigned *)0x3ff5008)define iopcon (*(volatile unsigned *)0x3ff5004)define extdbwth(*(volatile unsigned *)0x3ff5define syscfg(*(volatile unsigned *)0x主要有以下幾個(gè)模塊:void can_init(void)syscfg =syscfg & 0x0fffffffd;extdbwth =extdbwth& 0x00ff0ff;iopmod=0xf0ff;iopdata=0x6000; 寄存器地址0,
12、mod寄存器iopdata= io_pdata ale=0 配置mod寄存器iopdata= io_pdata|0x3f; ; 復(fù)位模式、使能iopdata=0x6006; ;寄存器地址6,總線定時(shí)器0寄存器iopdata=io_pdata ale=0配置寄存器iopdata= io_pdata|0x3f; 跳轉(zhuǎn)寬度、波特率設(shè)置;配置總線定時(shí)器1、驗(yàn)收代碼寄存器等iopdata=0x6000; sja1000 寄存器地址0,mod寄存器iopdata=io_pdata ale=0配置mod寄存器iopdata= io_pdata 寫復(fù)位位,進(jìn)入工作模式result = register_chr
13、dev(254,"can",&can_fops);申請(qǐng)主設(shè)備號(hào)if (resulti_rdev); 設(shè)備號(hào)int type = type(inode->i_rdev); 設(shè)備類型if (num>=scull_nr_devs) return -enodev;dev = &scull_devicesnum;flip->private_data = dev;mod_inc_use_count; 用戶數(shù)人工計(jì)數(shù)iopcon=0x16; /xirq0disable_irq(int_can);if(request_irq(int_can, &can_rx,sa_interrupt, "can rx isr","can") printk("s3c4510-can: can't get irq %dn
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年學(xué)生寢室衛(wèi)生的管理制度細(xì)則
- 速寫的課程設(shè)計(jì)
- 二零二五版電商平臺(tái)電商平臺(tái)數(shù)據(jù)分析與產(chǎn)品優(yōu)化合同3篇
- 年度特種變壓器戰(zhàn)略市場規(guī)劃報(bào)告
- 2025年度社區(qū)停車位產(chǎn)權(quán)轉(zhuǎn)讓協(xié)議范本4篇
- 2025年度鋅錠國際貿(mào)易結(jié)算服務(wù)合同3篇
- 2025年度智能大樓能源管理系統(tǒng)施工合同4篇
- 老虎畫畫賀卡課程設(shè)計(jì)
- 二零二五版共享單車運(yùn)營管理服務(wù)合同4篇
- 2025年度個(gè)人別墅買賣合同范本8篇
- 安徽省合肥市包河區(qū)2023-2024學(xué)年九年級(jí)上學(xué)期期末化學(xué)試題
- 《酸堿罐區(qū)設(shè)計(jì)規(guī)范》編制說明
- PMC主管年終總結(jié)報(bào)告
- 售樓部保安管理培訓(xùn)
- 倉儲(chǔ)培訓(xùn)課件模板
- 2025屆高考地理一輪復(fù)習(xí)第七講水循環(huán)與洋流自主練含解析
- GB/T 44914-2024和田玉分級(jí)
- 2024年度企業(yè)入駐跨境電商孵化基地合作協(xié)議3篇
- 《形勢與政策》課程標(biāo)準(zhǔn)
- 2023年海南省公務(wù)員錄用考試《行測》真題卷及答案解析
- 橋梁監(jiān)測監(jiān)控實(shí)施方案
評(píng)論
0/150
提交評(píng)論