字符設備與塊設備驅動程序.ppt_第1頁
字符設備與塊設備驅動程序.ppt_第2頁
字符設備與塊設備驅動程序.ppt_第3頁
字符設備與塊設備驅動程序.ppt_第4頁
字符設備與塊設備驅動程序.ppt_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、,字符與塊設備驅動程序,字符設備驅動程序要解決的主要問題,輸入: 按鍵驅動程序設計 觸摸屏接口設計與Linux 驅動程序,按鍵的原理圖,按鍵的抖動,硬件去抖動 軟件去抖動,軟件去抖的流程,按鍵驅動程序的實現s3c2410_kbd_init(初始化),利用set_external_irq函數,把3個連接輕觸開關的IO初始化成電平觸發(fā)中斷模式,并開啟S3C2410的內部上拉電阻。 注冊一個字符設備,創(chuàng)建設備文件節(jié)點 注冊中斷處理函數,使用同一個中斷處理函數s3c2410_isr_kbd 結構體kbddev的初始化和定義,按鍵驅動程序的測試,命令測試: cat /dev/keyboard/0raw

2、hexdump /dev/keyboard/0raw 自己編寫代碼:,#include #include #include #include #include #defineKBD_DEV/dev/keyboard/0raw static int kbd_fd = -1; static int init_device(void) if(kbd_fd=open(KBD_DEV, O_RDONLY)0)printf(Error opening %s devicen,KBD_DEV); return -1; return 0; int main(void) int i;char data; if(i

3、nit_device()0)return -1; for(;) read(kbd_fd, ,異步串口與Linux驅動程序,串口概述,常見的數據通信的基本方式有兩種: 并行通信: 串行通信: 串行通信是計算機常用的接口,如:RS-232-C接口。該標準規(guī)定采用一個DB25芯引腳連接器或DB9芯引腳連接器。 芯片內部常具有UART(通用異步串行接口)控制器,其可工作于Interrupt(中斷模式)或DMA(直接內存訪問模式),計算機通信是將計算機技術和通信技術的相結合,完成計算機與外部設備或計算機與計算機之間的信息交換 。 并行通信通常是將數據字節(jié)的各位用多條數據線同時進行傳送 。,并行通信控制簡

4、單、傳輸速度快;由于傳輸線較多,長距離傳送時成本高且接收方的各位同時接收存在困難。,串行通信是將數據字節(jié)分成一位一位的形式在一條傳輸線上逐個地傳送。,串行通信的特點:傳輸線少,長距離傳送時成本低,且可以利用電話網等現成的設備,但數據的傳送控制比并行通信復雜。,一、異步通信與同步通信 1、異步通信 異步通信是指通信的發(fā)送與接收設備使用各自的時鐘控制數據的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調,要求發(fā)送和接收設備的時鐘盡可能一致。,異步通信是以字符(構成的幀)為單位進行傳輸,字符與字符之間的間隙(時間間隔)是任意的,但每個字符中的各位是以固定的時間傳送的,即字符之間不一定有“位間隔”的整數倍的關系,但

5、同一字符內的各位之間的距離均為“位間隔”的整數倍。,異步通信的數據格式 :,異步通信的特點:不要求收發(fā)雙方時鐘的嚴格一致,實現容易,設備開銷較小,但每個字符要附加23位用于起止位,各幀之間還有間隔,因此傳輸效率不高。,異步 VS 同步,和同步傳輸相比: 異步通信系統(tǒng)的數據傳輸過程中,接收器時鐘與發(fā)射時鐘是不同步的 異步串口信號連接簡單 接收端需要事先知道發(fā)送端的波特率 異步串口速度不如同步,五、傳輸速率與傳輸距離 1、傳輸速率 比特率是每秒鐘傳輸二進制代碼的位數,單位是:位秒(bps)。如每秒鐘傳送240個字符,而每個字符格式包含10位(1個起始位、1個停止位、8個數據位),這時的比特率為:

6、10位240個/秒 = 2400 bps,2、傳輸距離與傳輸速率的關系 串行接口或終端直接傳送串行信息位流的最大距離與傳輸速率及傳輸線的電氣特性有關。當傳輸線使用每0.3m(約1英尺)有50PF電容的非平衡屏蔽雙絞線時,傳輸距離隨傳輸速率的增加而減小。當比特率超過1000 bps 時,最大傳輸距離迅速下降,如9600 bps 時最大距離下降到只有76m(約250英尺)。,RS-232C標準,1969年產生的RS-232C標準也許是世界上應用最為普及的通信接口 RS-232C接口定義:,交叉電纜連接標準,采用RS-232-C接口存在的問題 1、傳輸距離短,傳輸速率低 RS-232C總線標準受電容

7、允許值的約束,使用時傳輸距離一般不要超過15米(線路條件好時也不超過幾十米)。最高傳送速率為20Kbps。,2、有電平偏移 RS-232C總線標準要求收發(fā)雙方共地。通信距離較大時,收發(fā)雙方的地電位差別較大,在信號地上將有比較大的地電流并產生壓降。,3、抗干擾能力差 RS-232C在電平轉換時采用單端輸入輸出,在傳輸過程中當干擾和噪聲混在正常的信號中。為了提高信噪比,RS-232C總線標準不得不采用比較大的電壓擺幅。,RS-422和RS-485標準,RS-422、 RS-485時序和RS-232完全相同 通過差分信號改進RS-232的通信距離短、速率低的缺點 RS-422速率可達10Mbps,傳

8、輸距離延長到4000英尺(低于100kbps時) RS-422和RS-485標準只有電氣特性的規(guī)定,而不涉及接插件、電纜和上層協(xié)議標準,在此基礎上用戶可以建立自己的高層通信協(xié)議 很多業(yè)界的異步串行總線都是以此為基礎建立的,三、RS-485接口,RS-485是RS-422A的變型:RS-422A用于全雙工,而RS-485則用于半雙工。RS-485是一種多發(fā)送器標準,在通信線路上最多可以使用32 對差分驅動器/接收器。如果在一個網絡中連接的設備超過32個,還可以使用中繼器。 RS-485的信號傳輸采用兩線間的電壓來表示邏輯1和邏輯0。由于發(fā)送方需要兩根傳輸線,接收方也需要兩根傳輸線。傳輸線采用差動

9、信道,所以它的干擾抑制性極好,又因為它的阻抗低,無接地問題,所以傳輸距離可達1200米,傳輸速率可達1Mbps。,異步串口的硬件設計,從UART發(fā)出的異步串口時序的邏輯電平都是處理器IO電壓標準 要想符合RS-232、RS-422或者RS-485的電氣特性要有接口電路做轉換 RS-232的電氣特性: +5+15V(邏輯0) -5-15V(邏輯1) 從3.3V或者5V邏輯轉換到RS-232邏輯,需要有DC-DC轉換 常用芯片:MAX3232其特點: 可以提供兩路輸入、兩路輸出的電平轉換 最高可以滿足250kbps的速度(也有1Mbps或者更快的版本) 外接電路簡單,只需外接4個0.1uF的電容給

10、電荷泵使用 帶有ESD靜電保護 2.7V5V寬電壓供電,UART的操作主要包括以下幾個部分,數據發(fā)送 數據接收 產生中斷 產生波特率 Loopback模式 紅外模式 自動流控模式 串口參數的配置主要包括:波特率、數據位、停止位、流控協(xié)議,Linux中的串口文件存放于/dev目錄下,其中串口一,串口二對應設備名為“/dev/ttyS0”、 “/dev/ttyS1” 在linux下操作串口與操作文件相同,串口詳細配置,在使用串口前必須設置相關配置,包括:波特率、數據位、校驗位、停止位等,串口設置實現。 打開串口:fd=open(“/dev/ttyS0”,O_RDWR|O_NOCTTY|O_NDEL

11、AY),讀寫串口,串口的讀寫與普通文件一樣,使用read、write函數。 Read(fd,buf,8); write(fd,buf,8);,Linux存儲器接口軟硬件設計,嵌入式系統(tǒng)上常用的存儲媒體,Flash芯片 Flash媒質存儲器: SD/MMC卡、CF卡、 SM卡、U盤 IC卡、SIM卡 硬盤:CF接口、IDE接口,Linux對存儲設備的管理,塊設備 -文件系統(tǒng) 字符設備也可以完成簡單的存儲工作 嵌入式Linux的存儲通常通過MTD設備,MTD設備驅動,MTD(memory technology device)是用于訪問memory設備(ROM、flash)的Linux子系統(tǒng) 在硬件

12、和上層之間提供了一個抽象的接口 ,MTD把文件系統(tǒng)和Flash設備相隔離,MTD與文件系統(tǒng),MTD原始設備有兩部分組成 MTD原始設備的通用代碼, 各個特定的Flash的數據,例如分區(qū)。 mtd_info、mtd_table(mtdcore.c)、mtd_part(mtd_part.c) MTD設備層 linux系統(tǒng)定義出MTD的塊設備(主設備號31)和字符設備(設備號90)。設備節(jié)點:通過mknod在/dev子目錄下建立MTD字符設備節(jié)點(主設備號為90)和MTD塊設備節(jié)點(主設備號為31),通過訪問此設備節(jié)點即可訪問MTD字符設備和塊設備。 根文件系統(tǒng) 在Bootloader中將文件系統(tǒng)映

13、像燒錄到flash的某一個分區(qū)中,在啟動的時候,將該分區(qū)作為根文件系統(tǒng)掛載。 文件系統(tǒng): 內核啟動后,mount,NAND和NOR性能比較,NOR和NAND是現在市場上兩種主要的非易失閃存技術 NOR的讀速度比NAND稍快一些 NAND的寫入速度比NOR快很多 NAND的擦除速度遠比NOR的快 大多數寫入操作需要先進行擦除操作 NAND的擦除單元更小,相應的擦除電路更少,接口差別,NOR flash帶有SRAM接口,線性尋址,可以很容易地存取其內部的每一個字節(jié) NAND flash使用復用接口和控制IO多次尋址存取數據 NAND讀和寫操作采用512字節(jié)的塊,這一點有點像硬盤管理此類操作易于取代

14、硬盤等類似的塊設備,從NAND Flash啟動,經典2410試驗箱不帶NOR Flash,只能從NAND Flash啟動。由硬件實現選擇從NAND啟動。 系統(tǒng)上電或者復位時NAND Flash控制器自動將NAND Flash的前4KB拷貝到一段內置RAM中,并將這段RAM映射到0 x00000000地址處。,Nand Flash連接原理,Nand上yaffs文件系統(tǒng)的優(yōu)勢,專門為Nand flash設計的日志文件系統(tǒng) jffsjffs2不適合大容量的Nand flash jffs的日志通過jffs_node建立在RAM中,占用RAM空間:對于128MB的Nand大概需要4MB的空間來維護節(jié)點

15、啟動的時候需要掃描日志節(jié)點,不適合大容量的Nand flash,使用yaffs文件系統(tǒng),通過cat /proc/yaffs命令可以看到y(tǒng)affs系統(tǒng)的相關信息 mount -t yaffs /dev/mtdblock/0 /mnt/yaffs,IDE接口軟硬件設計,IDE接口簡介,Integrated Drive Electronics(IDE)本意是指把控制器與盤體集成在一起的硬盤驅動器。 通常說的IDE接口,稱之為ATA(Advanced Technology Attachment)接口 控制器是載有芯片的小型電路板,這些芯片對硬盤驅動器如何正確存儲和訪問數據進行控制。大多數控制器還帶有一

16、些內存,它充當緩沖器以增強硬盤驅動器性能。也就是說它提供了將完整設備與計算機(主機)連接的方法。,UP-2410CL上IDE接口邏輯原理圖,IDE接口標準,低電平有效,IDE設備寄存器,IDE接口的驅動程序,在include/asm-arm/arch-s3c2410/ide.h中實現: IO空間分配 入口在ide_init_default_hwifs ide_register_hw注冊驅動器 IDE設備工作在PIO模式下 Linux 2.6的結構有所調整,比如:drivers/ide/arm/pxa-ide.c,A/D,型電阻網絡D/A轉換器 :,轉換器的原理及主要技術指標,一、逐次逼近式ADC的轉換原理,二、雙積分式ADC的轉換原理,A/D轉換器的主要技術指標,1、分辨率 ADC的分辨率是指使輸出數字量變化一個相鄰數碼

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論