第4章結構設計2_第1頁
第4章結構設計2_第2頁
第4章結構設計2_第3頁
第4章結構設計2_第4頁
第4章結構設計2_第5頁
已閱讀5頁,還剩137頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

4.4通用I/O接口的設計

通常,嵌入式系統(tǒng)的I/O接口與處理器之間的連接大多不使用系統(tǒng)總線,而是直接連接在處理器的引腳上。例如,PXA255共有81個GPIO管腳,每個GPIO管腳都可以被設置為輸入和輸出用來撲捉輸入和產生輸出信號。當設置為輸入時,GPIO管腳也可以作為中斷源來用,當系統(tǒng)復位后,所有GPIO管腳的默認值為輸入。

GPDR(GPIOPinDirectionRegister)寄存器設置GPIO的輸入輸出功能。當某GPIO管腳設置為輸出模式,GPSR(GPIOPinOutputSetRegister)可以設置GPIO管腳上的高低電平值。當某一管腳設置為輸入模式時,讀GPLR(GPIOPinLevelRegister)寄存器的內容可以反映當前GPIO管腳的狀態(tài)。1

在并行信號傳輸中,要求由多條數據導線構成數據總線,另外還需要有相應的控制線和電源線,此時每條數據導線傳輸一個數據位。這是要求數據總線長度必須較短,這樣并行通信的數據通過能力強。否則會因為長導線會導致有較高的電容值,而在具有高電容值的總線上傳送數據需要有更多時間來進行充放電。此外,并行總線中各導線長度上的小差異,也可能導致所接受的數據字各位的抵達時間不同,隨著并行總線長度的增加,這種數據不齊的現(xiàn)象更為嚴重。

ARM架構中的處理器內核和處理器核一般都沒有I/O的部件和模塊,可以通過先進微控制總線架構AMBA來擴展宏單元和I/O部件,為微處理器提供了32位地址信號、32位數據信號和一些讀/寫、時鐘、外圍復位、選通等控制信號。2

ARM采用了存儲器映像I/O的統(tǒng)一編址方式,即把I/O端口當作為特殊的存儲器地址來對待處理。

比如三星公司生產的S3C44B0X微處理器芯片,芯片內部具有71個通用多功能輸入輸出引腳,這些I/O口的應用是S3C44BOX處理器的基礎應用,分別包含在如下7組端口中:1個10位輸出端口〔端口A〕;1個11位輸出端口(端口B);1個16位輸入/輸出端口(端口C);2個8位輸入/輸出端口(端口D和G);2個9位輸入/輸出端口(端口E和F)。34.4.1中斷接口概述

在使用I/O的數據量比較大,中斷處理事件比較頻繁的場合時,這是會很明顯地影響嵌入式系統(tǒng)的性能。因此,許多微處理器內部都包含了直接存儲器DMA。這樣使用DMA方式,I/O的數據塊傳送至存儲器的緩沖器區(qū)域就不需要微處理器介入,提高了微處理器的工作效率。但對一些沒有DMA的微處理器,為了要提高I/O高速數據處理的能力,微處理器系統(tǒng)本身設計有快速中斷FIQ能力;而對其余的一般I/O源可安排為一般中斷源IRQ。

通常終端源有硬件和軟件相關的中斷源、軟件錯誤相關的中斷源、為調試程序而攝制的中斷源和系統(tǒng)分時所用的中斷源。從系統(tǒng)的角度看,中斷是一個流程,一般來說,中斷要經過3個環(huán)節(jié):中斷響應、中斷處理和中斷返回。4

在系統(tǒng)對外部事件做出反應的過程中,中斷響應是第一個環(huán)節(jié),主要是確定中斷源,而后根據中斷源指引CPU進入具體的中斷處理程序。因此,中斷響應在整個中斷機制中起樞紐作用。由于在現(xiàn)有的技術條件下,芯片的引線數量受到很大的限制,因此很難為了快速確定中斷源而讓CPU芯片帶足夠多的中斷請求線。這樣一來,為了確定中斷源的來源,就需要有一些輔助的手段,使CPU在響應中斷的時候,能迅速確定中斷源。輔助手段主要有以下3種形式:(1)CPU在響應中斷時進入一個特殊的中斷響應周期,向外發(fā)一個“中斷響應(ACK)”信號,要求中斷源通過數據總線提供一個代表具體設備的數值,稱為“中斷向量”。但要求發(fā)出中斷請求的外設必須在接受中斷響應信號時發(fā)出這個中斷向量。同時為了防止多個外設同時發(fā)出中斷向量而形成沖突的情況,還需要把所有可能成為中斷源的設備連接成一條“中斷鏈”,在“中斷鏈”的不同位置應具有不同的優(yōu)先級。5

(2)在外部提供一個“集線器”,稱為“中斷控制器”。它為外設提供多條中斷請求線,但是將這些中斷請求線(相或)合并成一條。與此同時,在中斷控制器中還要提供一個寄存器,記錄當前的(綜合)中斷請求來自哪幾條外部中斷請求線,而CPU則可以像訪問外設一樣讀出這個寄存器的內容,以確定中斷請求的來源。(3)將中斷控制器集成在CPU芯片中,設法“挪用”或“復制”原有的若干引線,而并不實際增加引線的數量。這樣由外設產生的中斷請求都由芯片上的中斷控制器匯總成一個IRQ中斷請求。此外,中斷控制器還向CPU提供一個中斷請求寄存器和一個中斷控制寄存器。寄存器中的每一位都代表一個中斷源,通過中斷請求寄存器可以知道中斷請求來自何處,通過中斷控制寄存器則可以屏蔽或者連通特定的中斷源。

GPIO是一個通用的可編程的I/O接口,其接口寄存器中的每一位都可以分別在程序的控制下設置成用于輸入或者輸出。而且,當用于輸入的時候,還可以讓每一位的狀態(tài)變化都引發(fā)一個中斷請求。6

例如S3C44BOX具有30個中斷源,包括1個看門狗定時器,6個定時器,6個UART,8個外部,4個DMA,2個RTC,1個ADC,1個IIC和1個SIO共30個中斷源。S3C44B0X支持新的中斷處理模式稱為矢量中斷模式。中斷控制器的角色,就是響應來自FIQ(快速中斷請求)或IRQ(普通中斷請求)的中斷,并請求內核對中斷進行處理。多個中斷請求發(fā)生時,由硬件優(yōu)先級邏輯確定應該有哪個中斷源得到服務,同時硬件邏輯使中斷向量表的跳轉指令加載到(0X18或0X1C)位置,在該位置執(zhí)行跳轉指令使程序跳到相應的中斷服務線程,因此相對于傳統(tǒng)的ARM的軟件方法能夠大大減少中斷進入延時。7控制中斷的寄存器有如下8個:1.中斷控制寄存器2.中斷請求寄存器3.中斷模式寄存器4.中斷屏蔽寄存器5.IRQ矢量模式寄存器6.IRQ/FIQ中斷服務寄存器7.外部中斷控制寄存器8.外部中斷請求寄存器8外部中斷的應用Ⅰ(1).

I/O口設置首先對PG口的工作模式進行設置,要讓PG4~7工作在外部中斷輸入狀態(tài)。因此,要將PG口設置在功能3模式下,采用語句:rPCONG=1111

11

11xxxxxxxxB;如果希望采用內部上拉,則語句為:rPUPG=0000xxxxB。9

(2).外部中斷觸發(fā)模式設置利用外部中斷控制寄存器來設置外部中斷的觸發(fā)模式.由于采用電平觸發(fā)容易引起重復觸發(fā),因此建議采用下降沿或上升沿觸發(fā),不同觸發(fā)方式的語句如下:①采用下降沿觸發(fā)時:

rEXTINT=01x01x

01x

01xxxxxxxxxxxxxB;②采用上升沿觸發(fā)時:

rEXTINT=10x10x

10x

10xxxxxxxxxxxxxB;③采用邊沿觸發(fā)時:

rEXTINT=11x11x

11x

11xxxxxxxxxxxxxB;④采用低電平觸發(fā)時:

rEXTINT=000000

000

000xxxxxxxxxxxxB;104.4.2RS-232-C串行接口目前RS-232是PC機與通信工業(yè)中應用最廣泛的一種串行接口。RS-232被定義為一種在低速率串行通信中增加通信距離的單端標準。美國電子工業(yè)協(xié)會(EIA)把RS-232-C定義為:“在數據終端設備和數據通信設備之間使用串行二進制數據交換的接口”。RS-232-C標準是一種硬件協(xié)議,用于連接DTE(數據終端設備)和DCE(數據通信設備)兩種設備。RS-232-C定義包括接口以下三個方面:機械特性(一般為9針);電氣信號特性(負載電容不超過2500P,負載電阻在3K~7K歐姆之間,電壓在-3V~-15V和+3V~+15V之間);交換特性(允許全雙工方式)在實際的應用中,利用RS-232-C的通信最少可使用其中的3根線,即TxD、RxD和GND。通信距離一般在幾十米內,通信速率較低。11

串行通信概述

串行數據傳送模式:單工半雙工全雙工串行通信方式:同步通信異步通信12S3C44BOX內部集成的UART

S3C44B0XUART單元提供了兩個異步串口(SIO),每個SIO可以操作在中斷模式或DMA模式,支持波特率最大為115.2kbps,每個SIO通道包含都有一個16字節(jié)的接收與發(fā)送FIFO緩沖區(qū)。每個UART模塊包含以下幾個部件:波特率發(fā)生器,發(fā)送器,接收器和控制單元。每個UART能將從RXD端接收的串行數據轉換為并行的數據。并且還能夠將來自處理器的并行數據轉化為串行數據,然后通過TXD發(fā)送出去。13

檢錯是接收端檢測在數據字或包傳輸過程中可能發(fā)生的錯誤的能力。最常見的錯誤類型是位錯誤(biterror)和突發(fā)位錯誤(burstofbiterror)。位錯誤就是數據字或包中有一個位接受不正確,即1變?yōu)?或0變?yōu)?。突發(fā)位錯誤是數據字或包中連續(xù)多個位接收不正確。如果檢測到錯誤,糾錯(errorcorrection)就是通過接收器和發(fā)送器合作以更正錯誤的能力。檢錯和糾錯能力通常是總線協(xié)議的一部分。以下討論總線協(xié)議中常用的奇偶校驗(parity)以及校驗和(checksum)檢錯算法。校驗和是一種更強的檢錯方式,用于數據包的檢查。一個數據包含有多個數據字。當使用奇偶校驗時,每個字要增加一位,以幫助檢錯。使用校驗和時,每個包要增加一個字,目的也是幫助檢錯。例如,可以計算數據包中所有數據字的異或和,并將該值與數據包一起發(fā)送;接收器在接收到數據包字和檢查字后,計算所接收到的所有數據字的異或和,如果所計算的校驗和字等于所接受到的校驗和字,則認為所接收到的數據包是正確的,否則認為是錯誤的。同樣地,不是所有的錯誤組合都可以用這種方式檢測到。當然,也可以同時使用奇偶校驗與校驗和兩種檢錯方式,以得到更強的檢錯能力。14

在一般的微處理器中都集成了3.3VTTL電平的串行接口,可以直接使用,為了和標準RS-232-C串行設備通信,采用了一塊SP3243或MAX3223芯片用于電平的轉換。將微處理器中的邏輯1信號變成

-3V~-15V,將微處理器中的邏輯0信號變成+3V~+15V電平進行通信。RS-232串行接口電路設計

15RS232串口電路的設計(9線方式)16RS232串口電路的設計(3線方式)17嵌入式開發(fā)板與PC機的串行通訊嵌入式開發(fā)板和PC機的通訊電纜可以按照如圖所示的方式連接。目前RS-232-C標準通常采用的接口是9芯D型插頭。但由于RS232標準所定的高低電平與嵌入式系統(tǒng)所用的LVTTL定義的高低信號完全不同,LVTTL的標準所定義邏輯1對應2V~3.3V電平,邏輯0對應0V~0.4V電平,而RS232C標準采用負邏輯方式,邏輯1對應-3V~-15V電平,邏輯0對應+3V~+15V電平,顯然兩者之間要進行通信必須經過信號電平的轉換,常使用的電平轉換電路為MAX3223。184.4.3USB接口電路的設計通用串行總線協(xié)議USB(UniverSerialBus)是由Intel、Compaq及Microsoft等公司聯(lián)合提出的一種新的串行總線標準,主要用于PC機與外圍設備的互聯(lián)。1996年2月發(fā)布第一個規(guī)范版本1.0,2000年4月發(fā)布告訴模式版本2.0,相應的設備傳輸速率也從1.5Mbps的低速和12Mbps的全速提高到如今的480Mbps的高速。

USB規(guī)范中將USB分為5部分:控制器、控制器驅動程序、USB芯片驅動程序、USB設備以及針對不同USB設備的驅動程序。19

USB主要有如下優(yōu)點:支持即插即用:允許外設在主機和其他外設工作是進行連接配置、使用及移除。無需手動設置地址、中斷。支持熱插拔,設備不需重新啟動便可以工作;傳輸速率高。支持三種設備傳輸速率:USB1.1的速度為1.5Mb/s和12Mb/s;USB2.0實現(xiàn)高達480Mb/s的傳輸率。在USB2.0定義了一個與USB1.1相兼容的框架,它可以用USB2.0的驅動程序驅動USB1.1的設備。USB接口標準統(tǒng)一,使用一個4針插頭作為標準。連接方便、易于擴展。可通過串行連接或者使用集線器Hub連接127個USB設備,從而以一個串行通道取代PC上其他I/O端口。如串行口和并行口等,使PC與外設之間的連接更容易實現(xiàn)。所有的外設通過協(xié)議來共享USB的帶寬。獨立供電。USB接口提供了內置電源。不同設備之間基本可以共享接口電纜。在每個端口都可檢測終端是否連接或分離,并能區(qū)分出高速或低速設備。20

USB設備最大的特點就是即插即用,這是因為USB協(xié)議規(guī)定在主機啟動或USB設備插入系統(tǒng)時都要對設備進行配置。就是按照USB協(xié)議,在USB主機與USB設備之間進行的一系列“問答”過程。從而主機知道了設備的情況以及該如何與設備通訊,并為設備設置一個唯一的地址。在配置階段主機也了解了設備端點的使用情況,便可以通過這些端點來進行特定傳輸方式的通訊。對于標準USB設備,操作系統(tǒng)帶有它的驅動,而不需要編寫專門的主機驅動程序。但這樣就必須為它選擇一種標準命令集;但對于非標準設備,則可以自定義一套請求指令集,,并需要編寫專門的主機驅動程序來實現(xiàn)對USB設備的操作。在嵌入式系統(tǒng)中一般要擴展出主和從兩個USB接口。其中HOST(主)USB接口可選用Cypress公司的SL811芯片,要做Device(設備或從)USB接口則可選用Philips公司的PDIUSBD12芯片。其DeviceUSB接口可與PC機上的USB連接進行程序下載通信等功能。HOST(主)USB接口可連接諸如U盤的外部設備進行通信和存儲。21USB接口電路224.4.4JTAG接口與在線調試1)JTAG接口簡介傳統(tǒng)的調試工具及方法存在過分依賴芯片引腳的特點,不能再處理器高速運行時正常工作,并且還有占用資源、不能實時跟蹤和設置斷點、價格過高等弊病。基于JTAG仿真器的調試是目前ARM開發(fā)中采用最多的一種方式。

JTAG(JointTestActionGroup,聯(lián)合測試行動小組)是一種國際標準測試協(xié)議(IEEE1149.1標準),主要用于芯片內部測試及對系統(tǒng)仿真、調試,JTAG技術是一種嵌入式調試技術,它在芯片內部封裝了專門的測試電路TAP(TestAccessPort,測試訪問口),通過專用的JTAG測試工具對內部節(jié)點進行測試。如ARM,DSP,F(xiàn)PGA器件等。JTAG接口還常用于實現(xiàn)ISP(In-SystemProgrammable在線編程)功能,如對Flash器件進行編程等,通過JTAG接口,可對芯片內部的所有部件進行訪問,因而是開發(fā)調試嵌入式系統(tǒng)的一種簡潔高效的手段。目前JTAG有兩種標準,即14針接口和20針接口。23

JTAG的出現(xiàn)可以使得集成電路直接固定在PCB板上,無需插座。只通過邊界掃描便可以被測試,進行芯片的故障定位,迅速準確的測試芯片引腳的連接是否可靠,提高測試校驗效率。在微處理器中,可以通過JTAG直接控制ARM的內部總線,I/O口等信息,從而達到調試的目的。JTAG的主要功能有一是目標系統(tǒng)的測試,二是bootloader的下載。具體的包括有如下幾方面: (1)可以提供各引腳的采樣,并可強制引腳輸出用以測試外圍芯片。(2)在線測試功能可以在不影響系統(tǒng)工作的情況下,觀察系統(tǒng)各部分工作的情況。特別為表面貼元件提供了方便。24

(3)在線編程功能可以利用JTAG的外測試功能將需裝載的數據通過I/O下載到系統(tǒng)中EEPROM器件的引腳上,在無需任何附加電路情況下完成在線編程功能。(4)可以軟件下載、執(zhí)行、調試和控制,為復雜的跟蹤調試提供路徑。(5)可以進行多內核和多處理器的板級和芯片級的調試,通過串接為芯片制造商提供芯片生產、測試的途徑。基本特征:符合IEEE1149.1規(guī)范;支持全系列的ARM處理器如ARM7、ARM9、ARM10、Xscale等支持多種目標平臺ATMEL、Sumsung、Intel、Philip、Sharp等除JTAG掃描鏈外,不占用目標板上任何資源。25

ARM的JTAG接口內部組成

JTAG接口一端與PC機并口相連,另一端是面向用戶的測試接口,通過本身具有的邊界掃描便可以對芯片進行測試,從而達到調試的目的。其內部主要是由JTAG狀態(tài)機和JTAG掃描鏈的組成。

JTAG狀態(tài)機:JTAG狀態(tài)機分成15個狀態(tài),每一個狀態(tài)都有其相應的功能。不管JTAG狀態(tài)機處于哪個狀態(tài),當TMS信號等于邏輯1的時候,連續(xù)5個時鐘信號以后,JTAG狀態(tài)機必然回到Test-logicReset狀態(tài)。這也是JTAG狀態(tài)機的復位時的狀態(tài)。

JTAG鏈的組成:每一條JTAG鏈是由若干個JTAG的掃描單元串連組成的,每一個掃描單元都可以配置成捕獲外部信號的輸入單元或者對外的輸出單元。依靠移位寄存器,通過JTAG的TDO和TDI信號線,可以使數據串行輸出到每一個JTAG掃描單元上,或者讀出每一個掃描單元的數據。

26

JTAG鏈的工作過程是將被測芯片內部所有的引腳通過邊界掃描單元(BSC)串接起來,從JTAG的數據輸入信號TDI引入,在數據輸出信號TDO上引出。通過芯片內的BSC來實現(xiàn)許多在線仿真的功能。在進入調試狀態(tài),調試指令和數據從TDI進入,沿著測試鏈通過測試單元送到芯片的各個引腳和測試寄存器中,通過不同的測試指令來完成不同的測試功能。雖然JTAG調試不占用系統(tǒng)資源,能夠調試沒有外部總線的芯片,代價也非常小。但是JTAG通過串行方式依次傳遞數據,速度比較慢,只能進行軟件斷點級別的調試,自身還不能完成實時跟蹤和多種事件觸發(fā)等復雜調試功能。27JTAG的典型接口(14針)VCC(1、13腳):接電源GND(2、4、6、8、10、14腳):接地線nTRST(3腳):JTAG復位信號,復位JTAG的狀態(tài)機和內部的宏單元(Macrocell)TDI(5腳):數據輸入信號TMS(7腳):

測試模式選擇(TestModeSelect),通過TMS信號控制JTAG狀態(tài)機的狀態(tài)TCK(9腳):JTAG的時鐘信號TDO(11腳):數據輸出信號NC(12腳):未連接28JTAG14連接圖29J20連接圖302)常用的調試方法指令集模擬器一種利用PC機端的仿真開發(fā)軟件模擬調試的方法。JTAG仿真器通過ARM芯片的JTAG邊界掃描口與ARM核進行通信,不占用目標板的資源,是目前使用最廣泛的調試手段。實時在線硬件仿真器ICE

使用仿真頭代替目標板上的CPU,可以完全仿真ARM芯片的行為。但結構較復雜,價格較貴,通常用于ARM硬件開發(fā)中。31

ARMJTAG仿真調試連接圖 32ARMJTAGEmulator

實時仿真器33支持程序下載及實時調試:支持實時硬件斷點;可通過JTAG修改寄存器、存儲器內容。JTAG接口:支持14針或20針JTAG接頭。支持EPP增強型并口:下載速度可達130KB/s。JTAG時鐘速率可調:最大可達10MHz;可滿足多種用戶需要。支持所有符合RDI1.50或RDI1.51規(guī)范的調試工具軟件:SDT、ADS支持多種操作系統(tǒng):MicrosoftWindows95/98/NT/2000/Me/XPX86RedHatLinux6.2/7.1/7.2獨立的直流5V供電:不會影響目標板供電系統(tǒng);兼容不同電壓的目標板。支持通過網絡連接使用;支持多內核系統(tǒng)(1)ARMJTAGEmulator特點34(2)仿真開發(fā)工具JTAG電纜式仿真器

配套JTAG2000驅動程序UP-ICE100硬件仿真器技術指標:支持所有ARM7處理器。與ARM公司的SDT(ARM9以下)、ADS(后推出)調試器和編譯器兼容。JTAG數據下載速度50kBytes/s。支持FLASH芯片的在線編程,可以自由擴充。Flash編程速度可達20kBytes/s(與處理器速度有關)。對于目標板,三種配置和外部復位啟動模式。支持自動配置目標板處理器,實現(xiàn)目標板沒有Bootloader也可以調試程序。JTAG鏈診斷功能,可測試目標板電源電壓;JTAG狀態(tài)及完整性;檢測目標板處理器ID、PC指針等信息。兼容2.0V—5.0V等多種JTAG電壓標準。支持14芯和20芯兩種ARMJTAG標準。10M以太網和RS232串口通訊。軟件兼容于Windows98、2000、XP。35(3)建立開發(fā)環(huán)境搭建硬件平臺連接好目標板電源,將ARMJTAG的一端與開發(fā)主機并口連接,另一端接與目標板的JTAG接口。安裝集成開發(fā)環(huán)境如ADSV1.2安裝ARMJTAG驅動程序36例:嵌入式系統(tǒng)的開發(fā)與調試模式37(4)JTAG調試原理AngelJTAG38

宿主機調試器通過固定的協(xié)議控制下位機(協(xié)議轉換器)。宿主機調試器只發(fā)送宏觀的命令,比如:

程序運行、終止;讀些內存、ARM寄存器等。通訊的介質可以是串口、并口、以太網、USB等。調試手段可采用如下兩種方式。

JTAG調試:協(xié)議轉換器解釋上位機傳送過來的命令,通過JTAG控制ARM執(zhí)行。

Angel調試:協(xié)議轉換器可以直接做為目標板的一部分。直接執(zhí)行從宿主機傳送過來的調試命令;并回送相應的數據。

Angel可以節(jié)省專門的JTAG仿真器,但是,它需要軟件,或者是嵌入式操作系統(tǒng)的支持,做不到完全的實時仿真。而JTAG仿真是通過硬件和控制ARM的EmbeddedICE實現(xiàn)的,可以做到實時仿真。39

在調試目標系統(tǒng)時,首先要通過一定的方式使目標系統(tǒng)進入調試狀態(tài)。在調試狀態(tài)下就可以完成各種調試功能,例如查看處理器狀態(tài)、查看和修改存儲器內容等。ARM7TDMI可以通過下面的方式進入調試狀態(tài):通過設置程序斷點(breakpoint);通過設置數據斷點(watchpoint);相應外部請求進入調試狀態(tài);在目標程序中特定的位置設置斷點后,當該位置處的指令進入指令流水線時,ARM7TDMI內核將該指令表示為斷點指令。當程序執(zhí)行到斷點指令時,處理器進入調試狀態(tài),此時斷點指令還沒有被執(zhí)行。這時,用戶就可以執(zhí)行需要的調試功能。例如,查看處理器狀態(tài)、查看和修改處理器內容等。403)JTAG(14針)接口電路圖414.4.5A/D轉換接口

模數轉換器(ADC或A/D)將模擬信號轉為數字信號,而數模轉換器(DAC或D/A)正好相反。這些轉換對嵌入式系統(tǒng)而言是必要的,因為嵌入式系統(tǒng)要處理數字值,而系統(tǒng)所處環(huán)境中一般有很多模擬信號。模擬信號是具有連續(xù)值的信號,例如溫度或速度,其可能值有無限多;數字信號是具有離散值的信號,例如整數,在計算系統(tǒng)中,數字信號可以用二進制編碼表示。有了模擬信號和數字信號之間的轉換,就可以將數字處理器用于模擬環(huán)境中。42

例如S3C440BX芯片內部就自帶一個8路A/D轉換器,其內部由8通道多路復用模擬輸入端、自動調零比較器、時鐘發(fā)生器、10位連續(xù)寄存器和輸出寄存器組成。該轉換器是屬于逐次逼近SAR型的,可以通過軟件設置為Sleep摸式,可以節(jié)電減少功率損失。最大轉換率為100Ksps;輸入電壓范圍0-2.5V;分辨率10位;輸入帶寬0-100HZ(無采樣/保持電路)。ARM芯片與A/D功能有關的引腳:AIN[7:0]為8路摸擬采集通道,ADC的模擬輸入;AREFT為參考正電壓,AREFB為參考負電壓,AVCOM為摸擬公共參考電壓。43A/D內部結構圖

VAD/A44

逐次逼近型(也稱逐位比較式)的A/D轉換器,主要由逐次逼近寄存器SAR、D/A轉換器、比較器以及時序和控制邏輯等部分組成。它的實質是逐次把設定的SAR寄存器中的數字量經D/A轉換后得到電壓Vc,與待轉換模擬電壓Vx進行比較。比較時,先從SAR的最高位開始,逐次確定各位的數碼應是“1”還是“0”,其工作過程如下:轉換前,先將SAR寄存器各位清零。轉換開始時,控制邏輯電路先設定SAR寄存器的最高位為“1”,其余位為“0”,此試探值經D/A轉換成電壓Vc,然后將Vc與模擬輸入電壓Vx比較。如果Vx≥Vc,說明SAR最高位的“1”應予保留;如果Vx<Vc,說明SAR該位應予清零。然后再對SAR寄存器的次高位置“1”,依上述方法進行D/A轉換和比較。如此重復上述過程,直至確定SAR寄存器的最低位為止。此過程結束后,狀態(tài)線改變狀態(tài),表明已完成一次轉換。最后,逐次逼近寄存器SAR中的內容就是與輸入模擬量V相對應的二進制數字量。顯然A/D轉換器的位數N決定于SAR的位數和D/A的位數。轉換結果能否準確逼近模擬信號,主要取決于SAR和D/A的位數。位數越多,越能準確逼近模擬量,但轉換所需的時間也越長。454.5人機交互接口

為了使嵌入式系統(tǒng)具有友好的人機接口,需要給嵌入式系統(tǒng)配置顯示裝置,如LCD顯示器以及必要的聲響提示等。另外,要進行人機交互,還得由輸入裝置,使用戶可以對嵌入式系統(tǒng)發(fā)出命令或輸入必要的參數等。輸入設備如

鍵盤、觸摸屏等。464.5.1顯示器與其接口電路1)液晶顯示器(LCD)

液晶顯示器(LCD,LiquidCrystalDisplay)是一種低成本、低功率的器件,可顯示文字和圖像。LCD在嵌入式系統(tǒng)中極為常見,因為嵌入式系統(tǒng)通常沒有象臺式系統(tǒng)那樣配備標準的顯示器。LCD也可以用于很多常見的設備,如手表、傳真機、復印機以及計算器。

LCD有很多種類,其中一種是反射式LCD,其基本原理是,首先入射光線通過一個偏極化板,接著偏極化的光遇到液晶材料,如果激活液晶材料的部分區(qū)域,則LCD材料的分子整齊排列,使偏極化光能穿過LCD材料,否則光線無法通過,最后通過液晶材料的光線碰到一面鏡子而反射回來,因此激活的部分區(qū)域亮起來。另一種LCD是吸收式LCD,其工作原理類似,但使用黑色表面而沒有使用鏡子,該黑色表面在激活區(qū)域下面,可以吸收光線,因而顯得比其它區(qū)域暗。47

點陣式LCD由點的矩陣構成,可以顯示文字字符(字母和數字)以及其他符號,常見的點陣LCD用5行8列的點表示一個字符,LCD驅動器將輸入數據轉換為激發(fā)相應的點所需的電信號。液晶顯示的原理是液晶在不同電壓的作用下會有不同的光特性。一類是無源Passive的,這類液晶本身不發(fā)光,因而需要有外部提供光源,根據光源的位置又可以進一步分成反射式和透射式兩種。Passive液晶顯示的成本較低,但有效視角較小,色彩也不夠鮮艷。另一類是有源的,主要是TFT(一般在5英寸以上的LCD)。TFT是薄膜晶體管ThinFilmTransitor的縮寫,每個液晶實際上就是一個可以發(fā)光的晶體管,所以嚴格的說并不是液晶。液晶顯示屏就是有許多液晶排列成陣列而構成的。在單色液晶顯示屏中,一個液晶就是一個象素,而在彩色液晶屏中則每個象素由R紅、G綠和B蘭三個液晶共同組成。48

同時也可以認為每個象素背后都有一個8位的寄存器,寄存器的值決定著三個液晶單元各自的亮度。有些情況下寄存器的值并不直接驅動RGB三個液晶單元的亮度,而是通過一個調色板技術來訪問,發(fā)出真彩色的效果。在實際現(xiàn)實中如果要為每個象素都配備寄存器是不現(xiàn)實的,實際上只配備了一行的寄存器,而這些寄存器依次輪流連接到每一行象素并裝入該行的內容,使每一行象素都暫短的受到驅動,這樣周而復始將所有的象素行都驅動一遍就顯示一個完整的畫面。一般為了使人不感到閃爍,一秒鐘要重復顯示數十幀。LCB一般采用并行傳輸。49

CPU與LCD顯示屏之間的數據傳輸很頻繁,完全由CPU通過程序直接驅動顯然不合適,需要有硬件自動的加以驅動控制以減輕CPU的負擔。LCD的驅動控制通常由兩種方式,一種是LCD顯示屏后邊有印刷板并在板上帶有驅動芯片的LCD模塊。另一種是如果有需要,也可以直接使用微處理器芯片上的內置LCD控制器來構造顯示模塊,它可以支持彩色/灰度/單色三種模式,灰度模式下可支持4級灰度和16級灰度,彩色模式下最多支持256色,LCD的實際尺寸可支持到320X240。比如:PXA270處理器,帶有LCD控制器,顯示緩存和系統(tǒng)內存公用。可以支持STN(彩色/灰度)和TFT兩種模式的LCDTFT模式下最多支持18位色,800x600分辨率。50嵌入式處理器與LCD的連接嵌入式處理器LCD模塊(自帶控制器)數據總線寄存器選擇使能信號有LCD控制器的嵌入式處理器LCDLCD控制信號線51在常用的嵌入式LCD屏幕上實現(xiàn)圖像和字符的顯示具體步驟如下:首先在程序中配置微處理器GPIO的寄存器,將與LCD連接的引腳定義為所需的功能;將幀描述符定義在SDRAM里,在DMAC被初始化后供DMAC提取;配置LCD控制器的各寄存器;最后建立LCD屏幕上的每一象素與幀緩沖區(qū)對應位置的映射關系,將字符位圖轉換成字符矩陣數據,并且寫入到幀緩沖器(也成為顯存)里。顯存中的每一個單元對應LCD上的一個點,只要顯存中的內容改變,顯示結果便進行刷新。顯示屏可以以單色或彩色顯示,單色用1位來表示,彩色可以用8位(256色)或16位、24位表示其顏色。屏幕的大小和顯示模式這些因素會影響顯存的大小。52

顯存通常是從內存空間分配所得,并且它是由連續(xù)的字節(jié)空間組成,而屏幕的顯示操作總是從左到右逐點象素掃描,從上到下逐行掃描,直到右下角,然后再折返到左上角。而顯存里的數據則是按地址遞增的順序被提取,當顯存里的最后一個字節(jié)被提取后,再返回顯存的首地址。計算機反映自然界的顏色是通過RGB值來表示的,如果要在屏幕某一點顯示某種顏色,則必須在顯存里給出相應每一個象素的RGB值。其實現(xiàn)方法有直接從顯存中得到和間接得到兩種方式。直接得到是指在顯存里存放有象素對應的RGB值,通過將該RGB值傳輸到顯示屏上而令屏幕顯示。間接得到方式是指顯存中存放的并不是RGB值,而是調色板的索引值,調色板里存放的才是RGB值,然后再發(fā)送到顯示屏上。53

在顯存與顯示器之間還需要有LCD控制器負責完成從現(xiàn)存提取數據,進行處理并傳輸到屏幕上。例如PXA255微處理器內部集成有LCD控制器,它提供了一個從微處理器到Passive(STN)或Active(TFT)顯示屏的接口。LCD控制器由LCDDMAC,輸入輸出FIFO,內部調色板和寄存器組組成。當接Passive(STN)顯示屏,并且顯示模式為單色或彩色(小于8位/象素)時,

LCD控制器采用調色板技術。當接Active顯示屏(TFT)時,LCD控制器無需加載數據到調色板中,通過DMAC傳輸到輸入FIFO后,數據又立刻被傳輸到輸出FIFO,然后在屏幕上進行顯示。542)LED顯示器接口

LED(LightEmittingDiode)常稱為七段發(fā)光二極管,在專用的微型計算機系統(tǒng)中,特別是在嵌入式控制系統(tǒng)中,應用非常普遍。它價格低廉、體積小、功耗低,而可靠性又很好,因此,從單板微型機、袖珍計算機到許多微型機控制系統(tǒng)及數字化儀器都用LED作為輸出顯示。55LED顯示器的連接設計564.5.2鍵盤接口設計

鍵盤由一組按鍵組成,按下這些鍵可以為嵌入式系統(tǒng)提供輸入。鍵盤在嵌入式系統(tǒng)很常用,因為這類系統(tǒng)通常沒有配備臺式系統(tǒng)所帶的標準鍵盤。鍵盤模塊可能用來輸入數字型數據或者選擇控制設備的操作模式。鍵盤有兩種方案:一是采用現(xiàn)有的一些芯片實現(xiàn)鍵盤掃描;再就是用軟件實現(xiàn)鍵盤掃描。嵌入式控制器的功能很強,可能允分利用這一資源。57鍵盤工作原理圖58鍵盤掃描過程就是讓微處理器按有規(guī)律的時間間隔查看鍵盤矩陣,以確定是否有鍵被按下。每個鍵被分配一個稱為掃描碼的唯一標識符。應用程序利用該掃描碼,根據按下的鍵來判定應該采取什么行動。

消抖算法:組合鍵處理鍵盤掃描方法59

60

鍵盤驅動程序組成../ucos-II/add/OSAddTask.c中的任務初始化函數OSAddTask_Init的創(chuàng)建鍵盤任務Key_Scan_Task鍵盤初始化函數KeyBoard_init();中斷程序ISR_Key的實現(xiàn)鍵盤的查詢任務鍵盤映射表KeyBoard_Map614.5.3、觸摸屏設計

觸摸屏是覆蓋在輸出設備上的輸入設備,它記錄觸摸位置。把它覆蓋在顯示器上,使用者可對顯示的信息做出反應。觸摸屏分類有如下4種形式:電阻式觸摸屏;表面聲波觸摸屏;紅外式觸摸屏;電容式觸摸屏最常見的觸摸屏是電阻式觸摸屏,其屏體部分是一塊與顯示屏表面非常配合的多層復合薄膜,由一層玻璃或有機玻璃作為基層,表面涂有一層透明的導電層上面在蓋有一層外表面硬化處理,光華防刮的塑料層,它的內表面也涂一層透明導電層。在兩個導電層之間有許多細小(小于千分之一英寸)的透明隔離點把它們隔離絕緣。電阻式觸摸屏工作時,上下導體層相當于電阻網絡。當某一層電極加上電壓時,會在該網絡上形成電壓梯度。如有外力使得上下兩層在某一點接觸,則在另一層未加電壓的電極上可以測的接觸點處的電壓。然后用模/數轉換器來測量電壓,以此得出位置。觸摸屏通過交替使用水平和垂直電壓梯度來獲得x和y的位置。具體常用的有四線電阻式觸摸屏。電阻技術觸摸屏是一種對外界完全隔離的工作環(huán)境,故不怕灰塵、水汽和油污,可以用任何物體來觸摸,比較適合工業(yè)控制領域及辦公室內的使用。62四線電阻觸摸屏原理63測量原理在觸摸點X、Y坐標的測量過程中,測量電壓與測量點的等效電路圖所示,圖中P為測量點XVYY64觸摸屏芯片65觸摸屏的接口設計Ⅰ1.觸摸屏的驅動芯片ADS7843典型接口觸模屏控制器ADS7843是一個可編程的模擬到數字轉換器,適合于四線觸摸屏,以2.7V到5V間供電,轉換率高達125KHZ,功耗可達750uW。在自動關閉模式下功耗僅為0.5uW。模擬到數字的轉換精度(逐次比較式ADC)可選256級(8位)或4096級(12位)。命令字的寫入以及轉換后的數字量的讀取可通過串行方式操作。觸摸屏的控制采用專用芯片,專門處理是否有筆或手指按下觸摸屏,并在按下時分別給兩組電極通電,然后將其對應位置的模擬電壓信號經過A/D轉換送回處理器。S3C44B0選取PG口與ADS7843接口,共使用PG2-PG7的6條口線,也可以選擇其他的I/O口,但注意不要與I/O口上已經設定的功能相沖突.其中,X+、Y+、X-、Y-引腳直接與觸摸屏的相應管腳相連。66觸摸屏的接口設計Ⅱ2編程實現(xiàn)利用連接好的電路設置PCONG寄存器如下:

rPCONG=Ox015f;

其中,PENIRQ最好加上內部上拉,設置為:

rPUPG&=Ox80。(1)讀取觸摸點坐標程序:

編程采用固定參考電壓模式,因此SER/DFR=1。首先檢測PENIRQ是否為低電平,如果為低電平,則認為有接觸;否則認為觸摸屏沒有接觸。利用軟件模擬DIN,DOUT和DCLK上的3線串行傳輸時序,將讀取的x或Y坐標數值的控制字串行送入ADS7843,然后再串行讀出坐標值。最后將X和Y軸坐標值送串口顯示即可。(2)送控制字并讀取結果子程序。

67FM7843與ARM的連接68AD7843的工作時序同步串口(SIO)向ADS7843發(fā)送控制字轉換完成后從ADS7843串口讀出電壓轉換值

A/D轉換時序(每次轉換需要24個時鐘周期)69觸摸屏(鍵盤)驅動程序結構70觸摸屏驅動程序剖析../ucos-II/add/OSAddTask.c中的任務初始化函數OSAddTask_Init的觸摸屏的初始化函數TchScr_init創(chuàng)建觸摸屏任務Touch_Screen_Task注冊系統(tǒng)中斷(SetISR_Interrupt)開啟S3C44B0外部中斷4567(TS_OPEN_INT)中斷程序Touch_Screen_ISR的實現(xiàn)觸摸屏的查詢任務714.5.4通用接口標準

1)紅外(IrDA)接口標準IrDA是紅外數據協(xié)會(InfraredDataAssociation)的簡稱。IrDA是一種利用紅外光進行短距離點對點通信的技術。IrDA標準:1.0版-最高速度115.2kb/s1.1版-最高速率4Mb/s,與1.0版本的兼容。IrDA物理層規(guī)范通信速率、數據的調制方式、紅外收發(fā)器的峰值波長、視角、發(fā)光強度、接收靈敏度、抗背景光噪聲的能力等。72

IrDA的重要指標-速率SIR:串行紅外(SIR)標準,速率覆蓋了RS-232通常所支持的速率,如9600bps、19.2kbps、38.4kbps、57.6kbps等。MIR:指0.576Mbps與1.152Mbps的速率。。FIR:高速紅外(FIR)指4Mbps的速率,有時也指高于SIR的所有速率。VFIR:甚高速紅外標準,16Mbps。73IrDA與標準UART的時序差異

742)PCMCIA接口簡介PCMCIA是PersonalComputerMemoryCardInternationalAssociation的縮寫。卡通常用于移動計算機和嵌入式系統(tǒng)的的通信和存儲裝置。1990年首先為存儲器卡定制標準。該標準定義外設卡和主系統(tǒng)插座之間68引腳接口。有三個標準:TypeI、II和III。作為標準的一部分也提供軟件即插即用能力。軟件標準由插座服務和卡服務組成,它們也小心地分批請求資源(中斷、DMA通道等)。卡服務的作用類似于一個服務器,對請求應用程序和設備驅動器提供不同的服務。卡服務接口定義客戶/服務器通信接口。插座服務為實際的插座提供硬件獨立的軟件接口。75

1996年的PCMCIA為個人計算機卡制定了新的高性能總線標準,稱之為Cardbus。這是一種PCI型總線,它用32位總線控制,工作頻率為33MHz。WindowsCE為標準PCMCIA總線提供支持。面向筆記本電腦,移動設備的擴展接口標準通用接口,軟硬件層次分明基于PCMCIA的設備已經相當成熟,包括以太/無線網卡、USB1.0/2.0接口卡、串口卡、閃存卡、SCSI卡,MODEM/FAX卡…。共68pin管腳,分為16bit和32bit卡。電壓標準:5V、3.3V卡類型:16bit、32bit(cardbus)詳細資料:http://763)CF卡CF卡有3種工作模式:PCcardmemorymodePCcardI/OmodeTrueIDEmodeCF卡的非IDE模式,可以認為是16bitPCCard的子集通過轉接卡可以實現(xiàn)PCMCIA-CF的轉接774)SD卡接口SD(SecureDigitalCard)卡由松下、東芝和SanDisk聯(lián)合推出,1999年發(fā)布。SD卡數據傳送和物理規(guī)范由MMC發(fā)展而來,與MMC卡保持著向上兼容。通常采用4位并行數據線,具有7針接口。內部采用NAND型的Flash,平均數據傳輸率達2MB/S。784.6常用的嵌入式系統(tǒng)網絡接口

許多不同的網絡多年來在分布式嵌入式系統(tǒng)中被廣泛應用。一些系統(tǒng)總線可向它原來應用在多計算機系統(tǒng)中一樣被應用在嵌入式網絡系統(tǒng)中。現(xiàn)在介紹幾種常用的嵌入式網絡接口,包括I2C總線、CAN總線、用在局域網中的以太網和因特網方面相關的知識。794.6.1I2C總線接口設計

I2C總線是飛利浦公司開發(fā)的一種常用于將微處理器連接到系統(tǒng)的串行總線。單片機系統(tǒng)中也常將其用于連接串行存儲器和LCD控制器,也可以作為MPEG-2視頻片的命令接口。使用I2C總線接口有4種操作模式:主傳送模式、主接收模式、從傳送模式、從接收模式。

I2C總線的2.1版本使用的電源電壓是2V,傳輸速率是0-3.4Mb/s。它可以只使用兩條線:串行數據線(SDL)用于數據傳送,串行時鐘線(SCL)用于指示什么時候數據線上是有效數據。工作于全雙工通信形式。I2C規(guī)范并未限制總線導線的長度,只要總線的總電容保持在400Pf以下即可。每個I2C接口的設備都有一個唯一的7位地址(擴展方式為10位),便于主控器尋訪。正常情況下,I2C總線上的所有從執(zhí)行設備被設置為高阻狀態(tài),而主執(zhí)行設備保持高,表示空閑狀態(tài)。網絡中的各設備都可以作為發(fā)送器和接收器。80

網絡中的每一個I2C接口設備都使用開放集電極/開放漏極電路,并被連接到串行時鐘信號SCL和串行數據SDA這兩個專用線上。其工作原理如下:在進行通信時首先由主設備發(fā)出起始信號即在SCL線上輸出高電平,然后在SDA線上產生一個由低到高的電平變化作為開始通信信號。接著主控器送出一個從地址,來通知將于他通信的從設備。這1個字節(jié)的地址中包含7位地址信息和1位的傳輸方向指示位(0為主控器寫操作,1為讀操作)。接下來在SDA線上傳輸的每個信息字節(jié)的長度都是8位,每次傳輸中字節(jié)的數量不受限制,但每個傳輸字節(jié)后面都有一個應答位ACK。傳輸中字節(jié)的高位首先發(fā)送。為了完成每個字節(jié)的傳送操作,接收器應該在完成接收完1個字節(jié)之后發(fā)送ACK到發(fā)送方,告訴發(fā)送器已經收到了這個字節(jié)。ACK脈沖信號是在第9個時鐘處發(fā)出(前面8個時鐘完成一個字節(jié)的數據傳輸,SCL上的時鐘是由主控器產生的)。當發(fā)送器有接收ACK脈沖時,應81

該釋放SDA信號線,也就是將SDA置高。接收器在接收完前面的8位數據后,將SDA拉低,就認為接收器成功接收了前面8位數據。數據傳送結束后,主控器還要發(fā)停止信號,即在SCL信號為高電平時,SDA產生一個由低變高的電平變化表示整個數據傳送結束。在整個網絡中,如有當兩個設備試圖改變串行時鐘信號SCL和串行數據SDA到不同的電位時,開放集電極/開放漏極電路能夠防止出錯。但是每一個主控設備在傳輸時必須監(jiān)聽總線狀態(tài)以確保報文之間不互相影響。

地址0000000一般用于發(fā)出通用呼叫或總線廣播,總線廣播可以同時給所有的設備發(fā)出信號。I2總線可以被設計成多主控器總線結構。當總線空閑時,SCL和SDA都保持高電位。82

系統(tǒng)結構SCL83

典型的通信格式如下:(1)主控器向受控器中寫入兩個字節(jié)的數據。(2)主控器向受控器請求一個讀操作。(3)主控器只向受控器寫入一個字節(jié)的數據,然后發(fā)送另外一個開始信號來啟動從受控器中讀的操作。844.6.2CAN總線接口設計

控制器局域網(CAN,ControllerAreaNetwork)總線是一種用于實時應用的串行通信協(xié)議,可以使用雙絞線來傳輸信號。該協(xié)議由德國的RobertBosch公司開發(fā),用于汽車中各種不同電子元件之間的通信,以此取代昂貴而笨重的配電線束。該協(xié)議的健壯性使其用途延伸到其他自動化和工業(yè)應用。CAN協(xié)議的特性包括高完整性的串行數據通信、提供實時支持、傳輸速率高達1Mbps、11位尋址以及檢錯能力。它是一種多主方式的串行通訊總線,基本設計規(guī)范要求有高的位速率,高抗電磁干擾性,而且能夠檢測出產生的任何錯誤。還有低成本和遠距離傳輸(長達10Km)的特點。主要應用于汽車電控制系統(tǒng)、電梯控制系統(tǒng)、安全監(jiān)控系統(tǒng)、醫(yī)療儀器、紡織機械、船舶運輸等方面。851)CAN總線工作原理

CAN總線使用位串行數據傳輸,CAN可以1Mb/s的速率在40米雙絞線上運行,也可以使用光纜鏈接,而且在這種總線上總線協(xié)議支持多主控器。CAN與I2C總線的許多細節(jié)很類似,但也有一些明顯的區(qū)別。

CAN總線每一個節(jié)點有它自己的以AND方式連接到總線的驅動器和接收器。CAN總線的信號使用差分電壓傳頌,兩條信號線被稱為CAN-H和CAN-L,靜態(tài)時均是2.5V,此時狀態(tài)被稱為邏輯1,也被稱作“隱性”,用CAN-H比CAN-L高表示邏輯0,稱為“顯性”。此時的電壓值CAN-H=3.5V和CAN-L=1.5V。總線上的驅動電路當總線上任何節(jié)點拉低總線電位時會引起總線被拉到0。當所有節(jié)點都傳送1時,總線被稱作隱性狀態(tài),當一個節(jié)點傳送0時,總線處于顯性狀態(tài)。數據以數據幀的形式在網絡上傳送。86

I=隱性的0=顯性的節(jié)點節(jié)點一種CAN總線的物理電器組織結構圖87

CAN是一種同步總線。為了總線仲裁能夠工作,所有的發(fā)送器必須同時發(fā)送。節(jié)點通過監(jiān)聽總線上位傳輸的方式使自己與總線保持同步。數據幀的第一位提供了幀中的第一個同步機會。數據幀以一個1開始,以七個0結束(在兩個數據幀之間至少有三個位的域)。分組中的第一個域包含目標地址,該域被稱為仲裁域。目標標識符長度是11位。如果數據幀被用來從標識符指定的設備請求數據時,后面的遠程傳輸請求(RTR)位被設置為0。當RTR=1時,分組被用來向目標標識符寫入數據。控制域提供一個標識符擴展和4位的數據域長度,在它們之間有一個1。數據域的范圍是從0到64字節(jié),這取決于控制域中給定的值。數據域后發(fā)送一個循環(huán)冗余校驗(CRC)用于錯誤檢測。確認域被用于發(fā)出一個是否幀被正確接收的標識信號:發(fā)送端把一個隱性位(1)放到確認域的ACK插槽中;如果接收端檢測到了錯誤,它強制該位變?yōu)轱@性的0值。如果發(fā)送端在ACK插槽中發(fā)現(xiàn)了一個0在總線上,它就知道必須重發(fā)。ACK插槽后面跟著幀結束符,兩者由單位分隔符隔開。88

開始仲裁域控制域數據域CRC域應答域幀結束標識符遠程傳輸請求位表示符擴展值=1數據程度ACK插糟ACK分隔符值=0

CAN數據貞格式圖11111114160~6412167289CAN總線控制器體系結構協(xié)議控制器狀態(tài)/控制寄存器消息對象接收緩沖區(qū)宿主機接口總線接口CAN總線903)CAN總線接口的設計部分微處理器本身帶有CAN總線控制器使用CAN總線控制芯片SJA1000——Philips獨立CAN控制器,替代82C200,支持CAN2.0A/B,同時支持11位和29位ID,位速率可達1M,具有總線仲裁功能,擴展的接收緩沖器(64字節(jié)FIFO),增強的環(huán)境溫度范圍(-40-+125℃)。并行總線接口。MCP2510/5——MicroChip支持CAN2.0A/B,同時支持11位和29位ID,位速率可達1M,具有總線仲裁功能。2個接收緩沖區(qū),3個發(fā)送緩沖區(qū)。高速SPI接口。82C250 CAN總線收發(fā)器,

是CAN協(xié)議控制器和物理總線之間的接口,該器件對總線提供差動發(fā)送能力并對CAN控制器提供差動額接收能力,有很強的抗電磁干擾(EMI)的能力,至少可掛110個節(jié)點。91說明ARM和SJA1000以總線方式連接,SJA1000的復用總線和ARM的數據總線連接。SJA1000的片選、讀寫信號均采用ARM總線信號,ALE信號由讀寫信號和地址信號通過GAL產生。在寫SJA1000寄存器時,首先往總線的一個地址寫數據,作為地址,讀寫信號無效,ALE變化產生鎖存信號;然后寫另外一個地址,讀寫信號有效,作為數據。上述邏輯完全通過可編程器件來產生。控制CAN總線時首先初始化各寄存器,目前采用BASICCAN方式。發(fā)送數據時首先置位命令寄存器,然后寫發(fā)送緩沖區(qū),最后置位請求發(fā)送。接收通過查詢狀態(tài)寄存器,讀取接收緩沖區(qū)獲得信息。92CAN高層協(xié)議

CAN總線每次可以發(fā)送十個字節(jié)的信息(CAN2.0A)。發(fā)送的第一字節(jié)和第二字節(jié)的前3位為ID號,第四位為遠程幀標記,后四位為有效字節(jié)長度,軟件設置時可以根據ID號選擇是否屏蔽上述信息。也可以通過設置硬件產生自動驗收濾波器。 八個有效字節(jié)內部代表何種參數,可以自行定義內部標準,也可以參照DeviceNet等應用層協(xié)議。93例子:工業(yè)應用的CAN控制系統(tǒng)94ARM與CAN連接的電路圖95工程機械智能監(jiān)控器體系結構964.6.3嵌入式以太網設計以太網是廣泛用于通用計算的局域網。因為它以其高度靈活,組網相對簡單易于實現(xiàn)和以太網接口低價格等特點,它已經成為當今最重要的一種局域網建網技術,并被應用于嵌入式技術當中。尤其是在網絡不需要滿足嚴格的實時需求時,以太網特別有用。以太網的物理組成非常簡單。該網絡是一條具有單信號路徑的總線,以太網連接載體標準可以由幾種不同的實現(xiàn)方法,比如采用雙絞線、同軸電纜或光纜來實現(xiàn)。97

以太網/IEEE802.3通常使用專門的網絡接口卡或通過系統(tǒng)主電路板上的電路實現(xiàn),使用收發(fā)器與網絡媒體進行連接。收發(fā)器可以完成多種物理層功能,其中包括對網絡碰撞進行檢測。收發(fā)器可以作為獨立的設備通過電纜與終端連接,也可以直接被集成到終端站的網卡當中。以太網采用廣播機制,所有與網絡連接的工作站都可以看到網絡上傳輸的數據。通過查看包含幀中的目標地址,確定是否進行接收或放棄。如果證明數據確實是發(fā)給自己的,工作站將會接收數據并傳遞給高層協(xié)議進行處理。98

與I2C和CAN總線不同,以太網上的節(jié)點不是同步的,它可以在任何時間發(fā)送數據。I2C和CAN依靠同步機制在一個位的發(fā)送時間內實現(xiàn)沖突的檢測和取消;但是因為以太網的節(jié)點不是同步的,所以如果兩個節(jié)點同時發(fā)送數據,那么報文將會被破壞。以太網仲裁機制被稱作帶沖突檢測的載波監(jiān)聽多路存取,即CSMA/CD。一個帶有報文的節(jié)點等待總線空閑時傳送數據。以太網同步地偵聽總線,如果它偵聽到影響它的傳送的另一傳送時,它會停止傳送并且等待重發(fā)。以太網上的任何工作站在發(fā)送數據之前,工作站首先需要偵聽網絡是否空閑,如果網絡上沒有任何數據傳送,就會把要發(fā)的信息投放到網絡當中。否則,工作站只能等待下一次出現(xiàn)空閑的時候在進行數據的發(fā)送。991)以太網接口概述以太網以其高度靈活、相對簡單、易于實現(xiàn)的特點,成為當今最重要的一種局域網建網技術。通常所說的以太網主要是指以下3種不同的局域網技術:以太網/IEEE802.3采用同軸電纜作為網絡介質,傳輸速率達到10Mbps。100Mbps以太網又稱為快速以太網,采用雙絞線作為網絡介質,傳輸速率達到100Mbps。1000Mbps以太網又稱為千兆以太網,采用光纜或雙絞線作為網絡介質,傳輸速率達到1000Mbps(1Gbps)。

最常用的以太網協(xié)議是IEEE802.3標準。現(xiàn)代的操作系統(tǒng)均能同時支持這種類型的協(xié)議格式。因此對嵌入式的應用來說,只需要做到這一種就夠了,因為系統(tǒng)的精簡,除非有特殊需要,否則沒有必要支持太多的協(xié)議格式。100

2)以太網工作原理

以太網最早是由Xeros公司開發(fā)的一種基帶局域網技術;使用同軸電纜作為網絡介質;以太網采用廣播機制;采用載波多路訪問和碰撞檢測(CSMA/CD)機制;數據傳輸速率達到10Mbps;以太網/IEEE802.3通常使用專門的網絡接口卡或通過系統(tǒng)主電路板上的電路實現(xiàn)。101

(1)傳輸編碼曼徹斯特編碼差分曼徹斯特編碼102

曼徹斯特編碼的特點是:對應每一數據位的中間位置都有一個跳變,用跳變的相位表示數字,正跳變表示“0”,負跳變表示“1”,也被稱為相位跳變。差分曼徹斯特編碼的特點是:在每一位數據位的中間有一個跳變,但它只用來生成同步時鐘信號,這種編碼法是用每位開始有無跳變來表示數字,若每位開始有跳變表示數字“0”,若每位開始無跳變表示數字“1”。103(2)以太網協(xié)議

104(2)以太網協(xié)議

以太網MAC層物理傳輸幀(IEEE802.3)PRSDDASATYPEDATAPADFCS56位8位48位48位16位不超過1500字節(jié)可選32位PR: 同步位,收發(fā)雙方的時鐘同步,也指明傳輸的速率(10M、100M)SD: 分隔位,表示下面跟著的是真正的數據,而不是同步時鐘DA: 目的地址,以太網的地址為48位地址。如果為都為F,則是廣播地址SA: 源地址,48位,表明該幀的數據是哪個網卡發(fā)的,即發(fā)送端的網卡地址

TYPE:類型字段,表明該幀的數據是什么類型的數據。如:0800H表示數 據為IP包,0806H表示數據為ARP包,814CH是SNMP包,8137H

為IPX/SPX包

DATA:數據段,該段數據不能超過1500字節(jié)。PAD: 填充位。以太網幀傳輸的數據包最小不能小于60字節(jié),當數據段不足 46字節(jié)時,后面補000000.....(當然也可以補其它值)

FCS:32位CRC數據校驗位。該校驗由網卡自動完成105(3)以太網的數據傳輸特點PR,SD,PAD,FCS這幾個數據段是由網卡自動產生的;只需要理解DA、SA、TYPE、DATA四個段的內容所有數據位的傳輸由低位開始(傳輸的位流使用曼徹斯特編碼)以太網的沖突退避算法是由硬件自動執(zhí)行的DA+SA+TYPE+DATA+PAD最小為60字節(jié),最大為1514字節(jié)以太網卡可以接收三種地址的數據,一個是廣播地位,一個是多播地址(在嵌入式的環(huán)境中一般不用),一個是它自已的地址任何兩個網卡的物理地址都是不一樣的,是世界上唯一的,網卡地址由專門機構分配。1063)嵌入式的以太網設計方案嵌入式處理器+網卡芯片(RTL8019)對嵌入式處理器沒有特殊要求,通用性強處理器和網絡數據交換通過外部總線,速度慢,不適合于100M網絡帶有以太網絡接口的嵌入式處理器處理器面向網絡應用處理器和網絡數據交換通過內部總線,速度快107

108RTL8019的原理框圖109以太網接口電路110

與常規(guī)的網卡設計思路不同的是,在嵌入式系統(tǒng)中,系統(tǒng)的精簡一直是個主要的原則。RTL8019AS作為網卡,時需要一片EEPROM作為配置存儲器,來確定通訊的端口地址,中斷地址,網卡的物理地址,工作模式,制造廠商等信息;而在嵌入式系統(tǒng)中,可以使用RTL8019AS的默認配置和一些管腳作為網卡的初始化方法。這樣可以節(jié)省配置存儲器,減小嵌入式硬件平臺的體積。111基于RTL8019在嵌入式以太網設計(1)

ARM的總線,需要重新計算地址。RTL8019的初始化。

RTL8019支持即插即用模式和非即插即用模式。在嵌入式系統(tǒng)中,網卡的外設通常是不經常插拔的,所以,為了系統(tǒng)的精簡,配置RTL8019為非即插即用模式。有著固定的中斷,有著固定的端口地址,假設是端口是0x300(這里的端口是相對于ISA總線來說的端口),對于配置可以通過RTL8019的外部管腳,在系統(tǒng)上電復位的時候,自動配置起來。RTL8019含有16K字節(jié)的RAM,地址為0x4000-0x7fff(指的是RTL8019內部的存儲地址,而不是ISA總線的地址,是RTL8019工作用的存儲器,可以通過遠程DMA訪問),每256個字節(jié)稱為一頁,共有64頁。頁的地址就是地址的高8位,頁地址為0x40--0x7f。這16k的ram的一部分用來存放接收的數據包,一部分用來存儲待發(fā)送的數據包

112(2)通過RTL8019AS發(fā)送數據

作為一個集成的以太網芯片,數據的發(fā)送校驗,總線數據包的碰撞檢測與避免是由芯片自己完成的。我們只需要配置發(fā)送數據的物理層地址的源地址、目的地址、數據包類型以及發(fā)送的數據就可以了。113(3)通過RTL8019AS接收數據

在RTL8019的初始化程序中已經設置好了接收緩沖區(qū)的位置,并且配置好了中斷的模式。當有一個正確的數據包到達的時候,RTL8019會產生一個中斷信號,在ARM中斷處理程序中,接收數據。數據的接收比較簡單,即通過遠端DMA把數據從RTL8019的RAM空間讀回ARM中處理。114

(4)以太網控制器CS8900在有些嵌入式系統(tǒng)當中采用CS8900以太網控制器進行組網。CS8900的封裝采用100-pinTQFP形式,內部集成了在片RAM、10BASE-T收發(fā)濾波器。具有的功耗、高集成度的設計和簡單的總線接口,并且可以直接和微處理器相連。CS8900有三種工作模式:I/O模式、存儲器模式和直接存儲器模式,默認為I/O模式,可以通過程序使其工作于其他模式。115(5)嵌入式以太網中主要處理的協(xié)議ARP(AddressResolationProtocol)

地址解析協(xié)議ICMP(InternetControlMessagesProtocol)

網絡控制報文協(xié)議IP(InternetProtocol)網際協(xié)議TCP(TransferControlProtocol)

傳輸控制協(xié)議UDP(UserDatagramProtocol)

用戶數據包協(xié)議1164.6.4嵌入式internet1)嵌入式internet概述嵌入式internet的應用-目前最方便的聯(lián)網方式智能公路:包括交通管理、車輛導航、流量控制、信息監(jiān)測和汽車服務。植物工廠:特種植物工廠,如實現(xiàn)野生名貴藥材的遠程監(jiān)控培養(yǎng)和種植、無土栽培技術應用、智能種子工程等。虛擬現(xiàn)實(VR)機器人:包括交通警察、門衛(wèi)、家用機器人等。工業(yè)制冷:冷庫、中央空調和超級市場冰柜。VR精品店:客戶可以在Internet上實時地查看到存貨狀況。VR家政系統(tǒng):水、電、煤氣表的自動抄表,安全防火和防盜系統(tǒng)等。117

工業(yè)自動化:目前已經有大量的8位、16位和32位嵌入式微控制器在實際工作中得到廣泛應用,網絡化是提高生產效率和產品質量、減少人力資源消耗的主要途徑。如制藥工業(yè)的過程控制、電力系統(tǒng)、電網安全、電網設備監(jiān)測和石油化工系統(tǒng)等。POS網絡及電子商務:公共交通無接觸智能卡(ContactlessSmartcard,CSC)發(fā)行系統(tǒng)、公共電話卡發(fā)行系統(tǒng)、自動售貨機等。環(huán)境工程與自然:水文資料實時監(jiān)測,防洪體系及水土質量監(jiān)測,堤壩安全,地震監(jiān)測網,實時氣象信息網,水源和空氣污染監(jiān)測等。2)網際協(xié)議(IP)[Los97,Sta97A]是因特網上的最基本的協(xié)議。它提供了無連接的、基于分組的通信。基于因特網的嵌入式系統(tǒng)已經在工業(yè)自動化中有了良好的應用。使用因特網的信息工具已快速成為嵌入式運算中IP的另一用途。118

IP不是定義在特定的物理實現(xiàn)上的,它是一種網際互連標準。因特網分組采取能夠被其他網絡,比如以太網,承載的形式。一般說來,一個因特網分組從原地址到目的地址會經過幾種不同的網絡。IP允許數據通過這些網絡,無損失的從一端用戶流動到另一端用戶。

IP工作在網絡層。當節(jié)點A發(fā)送數據到節(jié)點B時,應用的數據通過協(xié)議棧的幾層到達網際協(xié)議。IP創(chuàng)建路由到目的的分組,發(fā)送到數據鏈路層和物理層。在不同類型的網絡之間傳輸數據的節(jié)點叫路由器。路由器的功能必須到達IP層,但是由于它不執(zhí)行應用,因此它就不需要到達OSI模型的更高層。一般說來,一個分組到達它的目的地址也許要經過幾個路由器,在目的地址,IP層給運輸層提供數據并盡可能地接受應用。當數據經過協(xié)議棧的幾層時,IP分組數據被以適合于每一層的分組格式封裝。119

3)MAC地址我們知道

溫馨提示

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

評論

0/150

提交評論