基于 ARM 的嵌入式 Qt 圖形界面開發(fā) ——信號發(fā)生器設計
《基于 ARM 的嵌入式 Qt 圖形界面開發(fā) ——信號發(fā)生器設計》由會員分享,可在線閱讀,更多相關《基于 ARM 的嵌入式 Qt 圖形界面開發(fā) ——信號發(fā)生器設計(64頁珍藏版)》請在裝配圖網上搜索。
1、內蒙古科技大學畢業(yè)設計說明書(畢業(yè)論文) 內蒙古科技大學信息工程學院 測控專業(yè)畢業(yè)論文 題 目:基于ARM的嵌入式Qt圖形界面開發(fā) ——信號發(fā)生器設計 學生姓名:喬紅霞 學 號:200440503223 專 業(yè):測控技術與儀器 班 級:測控04-2班 指導教師:孫采鷹 講師 基于ARM的嵌入式Qt圖形界面開發(fā) --信號發(fā)生器設計 摘要 隨著計算機硬件設計水平的提高,越來越多的軟件開發(fā)工作集中在圖形用戶接口(GUI)上。圖形
2、用戶接口(GUI)是指計算機與其使用者之間的對話接口,是計算機系統的重要組成部分。目前流行的嵌入式GUI主要包括MicroWindows、MiniGUI和Qt/Embedded等,它們非常強調系統的空間和時間效率。與前兩者相比Qt/Embedded(簡稱QtE)是一個專門為嵌入式系統設計圖形用戶界面的工具包。 Qt是一個跨平臺的C++圖形用戶界面庫,由挪威TrollTech公司出品,目前包括Qt、基于FrameBuffer的Qtopia Core、快速開發(fā)工具Qt Designer和國際化工具Qt Linguist等部分。Qt支持所有的UNIX系統,當然也包括Linux系統,還支持WinNT
3、/Win2k、Windows 95/98平臺。 它能給用戶提供精美的圖形用戶界面所需要的所有元素,而且它是基于一種面向對象的思想,所以用戶對其對象的擴展是相當容易的,并且它還支持真正的組件編程。 本設計是基于ARM處理器SBC2410開發(fā)板在Linux平臺上開發(fā)Qt界面,具體界面以簡易信號發(fā)生器界面顯示。設計的核心內容是Qt界面的開發(fā),主要包括Qt開發(fā)的硬件平臺的搭建,軟件的開發(fā)以及交叉編譯的建立,并通過C++程序的調用來實現具體界面的顯示。 關鍵詞: Qt界面、 C++程序、ARM開發(fā)板 Temperature Transmitter
4、Intelligentizing ——Intelligent Module Abstract The design is a intelligent temperature transmitter. The measured thermocouple voltage millivolt signal amplification for the 0~5V voltage signal, Click it and the cold-temperature compensation voltage, through the TLC0832 eight dual-channel A/D sa
5、mpling to time, AT89C52 then sent to the microcontroller through the filtering software, temperature compensation, Scaling converted into corresponding to the value of the temperature LED display; DAC0832 same time as a result of the figures, the volume converted into analog and then the V / I signa
6、l output circuit. This transmitter can be right 700 ~1300℃ range of temperature measurement and signal sensor. In the design, right through temperature sensor detection; Using A/D converter complete analog-to-digital conversion; Intelligent Transmitter is a microprocessor core part, the AT89C52,
7、 its unique functionality and flexibility are very suitable for this design requirements; Serial D/A chip digital-to-analog converter; by the V/I complete circuit simulation output; ultimately achieve temperature transmitter serial digital output and a 4-20mA analog output. Keywords : th
8、ermocouple;compensation;SCM;Transmitter 59 目 錄 Abstract III 目 錄 IV 引言 1 第一章 ARM開發(fā)環(huán)境的硬件資源 2 1.1 硬件電路設計思想 2 1.2 硬件電路框圖 2 1.3 ARM開發(fā)板相關模塊介紹 2 1.3.1 S3C2410模塊 3 1.3.2 SDRAM模塊 5 1.3.3 NAND FLASH模塊 7 1.3.4 JTAG調試接口模塊 8 1.3.5 UART通用異步串行接口 10 1.3.6 通用 IO 口:CON-GPIO 13 1.3.7 US
9、B接口 13 1.3.8 LCD觸摸屏 14 第二章 Linux開發(fā)平臺的建立 17 2.1 Linux開發(fā)環(huán)境概述 17 2.2 red hat Linux9.0的安裝 17 2.2.1 Red Hat Linux9安裝前準備 17 2.2.2 安裝流程 17 2.2.3 構建交叉編譯器 19 2.2.4 Linux下minicom的設置 21 2.3 Linux系統的配置和編譯 25 2.3.1 嵌入式Bootloader 25 2.3.1 配置和編譯vivi 26 2.3.2 配置和編譯內核 26 2.4 制作YAFFS文件系統 27 2.4.1
10、 制作基本文件系統映像 27 2.4.2 制作帶Qtopia的文件系統映像 27 2.5 設計所用Linux工具及其基本指令 28 第三章 Qt界面開發(fā) 31 3.1 Qt概述 31 3.2 Linux下Qt開發(fā)環(huán)境搭建 31 3.2.1 安裝工具的準備及安裝原則 31 3.2.2 安裝過程 31 3.3 簡易信號發(fā)生器界面開發(fā) 33 3.3.1 Qt/Embedded開發(fā)演練 33 3.3.2 簡易信號發(fā)生器界面實現 34 第四章 結論 48 參考文獻 49 附錄A:電路圖 50 附錄B:程序 51 致謝 57 內蒙古科技大學畢業(yè)設計說明書(畢
11、業(yè)論文) 引言 本設計從ARM處理器基本功能入手,進一步了解ARM平臺的搭建,Linux的開發(fā)及基本應用,并進一步了解和學習Linux平臺下Qt的界面開發(fā),從而完成了運用Qt實現簡單界面的設計。 該設計是基于ARM開發(fā)板SBC2410實現的,同時外接LCD液晶顯示屏。首先在Linux平臺上使用Qt實現了界面的模擬顯示,然后通過交叉編譯器將其下載到ARM開發(fā)板上顯示。該界面顯示的內容是簡易信號發(fā)生器界面,該信號發(fā)生器界面主要包括頻率、正弦波、三角波和方波按鈕,使頻率能夠在正弦波、三角波和方波之間切換,并包括一個顯示窗口,窗口顯示內容通過矩陣小鍵盤實現。 該界面開發(fā)平臺可以同信號發(fā)生器硬件
12、連接使用,作為簡易信號發(fā)生器操作界面,使信號發(fā)生器輸出所需信號,并在示波器上觀察輸出信號。 第一章 ARM開發(fā)環(huán)境的硬件資源 1.1 硬件電路設計思想 硬件部分主要包括ARM開發(fā)板SBC2410,LCD觸摸屏兩大部分。 ARM開發(fā)板中本設計主要使用以下元器件:電源電路, S3C2410(分三部分畫),SDARM(兩塊),NAND FLASH,實時時鐘,復位電路,LCD觸摸屏,USB接口,網線接口,JTAG插槽,UART串口以及擴展接口GPIO和系統總線接口。 1.2 硬件電路框圖 本設計是基于ARM9開發(fā)板SBC2410外接LCD液晶顯示屏實現的Qt界面。它以ARM微處理器為核心,
13、以Linux為開發(fā)平臺,使用Qt安裝包建立開發(fā)環(huán)境,從而實現了簡易信號發(fā)生器界面開發(fā)。 圖1 硬件設計框圖 1.3 ARM開發(fā)板相關模塊介紹 本設計硬件電路中不僅包括SBC2410開發(fā)板、LCD液晶觸摸屏,還包括D/A轉換電路輸出所需電壓信號。其中SBC2410開發(fā)板主要包括以下模塊:S3C2410 一塊(電路圖中分三塊畫,便于連接),SDRAM 兩塊,NAND FLASH 一塊,實時時鐘一個,內置電源電路、晶振和復位電路;以及相關接口:JTAG插槽、USB接口、網線接口、UART串口、GPIO擴展口和BUS CON總線接口。 圖2 硬件結構圖 1.3.1 S3C
14、2410模塊 S3C2410X是韓國三星公司推出的16/32位RISC微控制器,其CPU采用的是ARM920T內核,加上豐富的片內外設,為手持設備和其它應用,提供了低價格、低功耗、高性能微控制器的解決方案。 主要由兩大部分構成:ARM920T內核、片內外設。 一、其系統結構如下: 圖3 SBC2410模塊結構圖 二、存儲器配置 S3C2410X的存儲器管理器提供訪問外部存儲器的所有控制信號:26位地址信號、32位數據信號、8個片選信號、以及讀/寫控制信號等。 S3C2410X的存儲空間分成8組,最大容量是1GB,bank0---bank5為固定128MB,
15、bank6和bank7的容量可編程改變,可以是2、4、8、16、32、64、128MB,并且bank7的開始地址與bank6的結束地址相連接,但是二者的容量必須相等。 bank0可以作為引導ROM,其數據線寬只能是16位和32位,復位時由OM0、OM1引腳確定;其它存儲器的數據線寬可以是8位、16位和32位。 S3C2410X的存儲器格式,可編程設置為大端格式,也可設置為小端格式。 三、S3C2410的連線 S3C2410X有117個輸入/輸出端口。這些端口是: A口(GPA):23個輸出口 B口(GPB):11個輸入/輸出口 C口(GPC):16個輸入
16、/輸出口 D口(GPD):16個輸入/輸出口 E口(GPE):16個輸入/輸出口 F口(GPF):8個輸入/輸出口 G口(GPG):16個輸入/輸出口 H口(GPH):11個輸入/輸出口 這些端口都具有多功能,通過引腳配置寄存器,可以將其設置為所需要的功能,如:I/O功能、中斷功能等等。 本設計電路圖中將S3C2410分三部分畫,其中第一部分主要連接地址線、數據線和片選信號;第二部分連接SDRAM、NAND FLASH、LCD觸摸屏、IIC總線、SD卡、JTAG和其他主要設備;第三部分用來連接電源、復位電路和外接地。 1.3.2 SDRAM模
17、塊 SDRAM,即Synchronous DRAM(同步動態(tài)隨機存儲器),SDRAM采用3.3伏工作電壓,168Pin的DIMM接口,帶寬為64位。SDRAM不僅應用在內存上,在顯存上也較為常見。 一、概述 三星公司的SDRAM(K4S561632C)的外部同步時鐘速率可在一定的頻率范圍內連續(xù)變化,最高頻率可達到133MHz,每塊SDRAM內含四個獨立的Bank;它的基本存儲單元都是按照陣列排列的,它的數據位寬和整個存儲器的位寬相同,同時支持多種讀寫模式;所有的輸入信號均以時鐘的上升沿為基準,這使得地址、控制和數據輸入到緩沖器的時間可保持一致且建立和保持的時間很??;該器件使用完全流水線型
18、內部結構;另外,它還具有突發(fā)長度可編程、延遲可編程等優(yōu)點。這些優(yōu)點使得K4S561632C能廣泛的應用于寬頻帶、高性能存儲器應用系統。 與系統總線速度同步,也就是與系統時鐘同步,這樣就避免了不必要的等待周期,減少數據存儲時間。同步還使存儲控制器知道在哪一個時鐘脈沖期由數據請求使用,因此數據可在脈沖上升期便開始傳輸。 二、工作原理 ?? SDRAM的行地址線和列地址線是分時復用的,即地址線要分兩次送出,先送行地址線,再送列地址線。這樣可進一步減少地址線的數量、提高器件的性能,但尋址過程會由此變得復雜,新型的SDRAM的容量一般比較大,如果還采用簡單的陣列結構,就會使存儲器的字線
19、和位線的長度、內部寄生電容及寄生電阻都變得很大,從而使整個存儲器的存取速度嚴重下降。 實際上,現在SDRAM一般都以Bank(存儲體或存儲塊)為組織,來將SDRAM分為很多獨立的小塊,然而由Bank地址線BA控制Bank之間的選擇;SDRAM的行、列地址線貫穿所有的Bank;每個Bank的數據位寬同整個存儲器的相同。這樣,Bank內的字線和位線的長度就可被限制合適的范圍內,從而加快存儲器單元的存取速度,另外,BA也可以使被選中的Bank處于正常工作模式,而使沒有被選中的Bank工作在低功耗模式下,這樣還可以降低SDRAM的功耗。 三、SDRAM的基本信號 SDRAM的基本信號可以分成以下
20、幾類: (1)控制信號:包括片選(CS)、同步時鐘(CLK)、時鐘有效(CLKEN)、讀寫選擇(WE)、數據有效(DQM)等; (2)地址選擇信號:包括行地址選擇(RAS)、列地址選擇(CAS)、行/列地址線(SA0-SA12)分時復用、Bank塊地址線(BA0-BA1); (3)數據信號:包括雙向數據端口(DQ0-DQ15)、接收數據有效信號(DQM)控制等。DQM為低時,寫入/讀出有效。 四、初始化操作 SDRAM在上電以后必須先對其進行初始化操作,而后才能對其進行其他操作。出初始化操作具體步驟如下: SDRAM在上電以后需要等待100-200μs,在
21、等待時間結束后還至少要執(zhí)行一條空操作命令; SDRAM執(zhí)行一條預充電命令后,要執(zhí)行一條空操作命令,這兩個操作會使所有的存儲單元進行一次預充電,從而使所有陣列中的器件處于待機狀態(tài); SDRAM要執(zhí)行兩條自刷新命令,每一條刷新命令之后,都要執(zhí)行一條空操作命令,這些操作可使SDRAM芯片內部的刷新及計數器進入正常運行狀態(tài),以便SDRAM為模式寄存器編程做好準備; 執(zhí)行加載模式寄存器(LOAD MODE REGISTER)命令,完成對SDRAM工作模式的設定。完成以上步驟后,SDRAM即可進入正常工作狀態(tài),以等待外部命令對其進行讀、寫、預充電和刷新等操作。 1.3
22、.3 NAND FLASH模塊 一、Nand Flash控制器概述 S3C2410X微控制器從Nand flash的引導功能:其內部有一個叫做“起步石(Steppingstone)”的 SRAM緩沖器,系統 啟動時,Nand flash存儲器的前面4KByte字節(jié)將被自動載入到起步石中,然后系統自動執(zhí)行這些載入的引導代碼。引導代 碼執(zhí)行完畢后,自動跳轉到SDRAM執(zhí)行。 NorFlash存儲器:讀速度高,而擦、寫速度低,容量小,價格高。 NAND FLASH 讀速度不如Nor flash,而擦、寫速度高,容量大,價格低。有取代磁盤的趨勢。因此,現在不少用戶從Nand fla
23、sh啟動和引導系統,而在SDRAM上執(zhí) 行主程序代碼。 Nand flash操作的校驗功能:使用S3C2410X內部硬件ECC功能可以對Nand Flash的數據進行有效性的檢測。 二、Nand Flash控制器主要特性 Nand Flash模式:支持讀/擦/編程Nand flash存儲器。 自動導入模式:復位后,引導代碼被送入Steppingstone,傳送后,引導代碼在 Steppingstone中執(zhí)行。 具有硬件ECC(糾錯碼)功能:硬件產生糾錯代碼。 內部4KB的SRAM緩沖器Steppingstone,在Nand flash引導后可以作為其他用途使用。 三、Na
24、nd Flash 控制器的工作原理 (1)自動導入啟動代碼步驟 ? 完成復位。 ? 如果自動導入模式使能,Nand flash存儲器的前面4K字節(jié)被自動拷貝到Steppingstone 內部緩沖器中。 ? Steppingstone被映射到nGCS0對應的BANK0存儲空間。 ? CPU在Steppingstone的4-KB內部緩沖器中開始執(zhí)行引導代碼。 注意: 在自動導入模式下,不進行ECC檢測。因此,Nand flash的前4KB應確保不能有位錯誤(一 般Nandflash廠家都確保)。 (2)Nand FLASH模式配置 ? 通過NFCONF寄存器配置Na
25、nd flash; ? 寫Nand flash命令到NFCMD寄存器; ? 寫Nand flash地址到NFADDR寄存器; ? 在讀寫數據時,通過NFSTAT寄存器來獲得Nand flash的狀態(tài)信息。應該在讀操作前或寫入 之后檢查R/nB信號(準備好/忙信號)。 ? 在讀寫操作后要查詢校驗錯誤代碼,對錯誤進行糾正。 (3)系統引導和 Nand FLASH 配置 ? OM[1:0] = 00b:使能Nand flash控制器自動導入模式; OM[3:0]為芯片引腳,設置引導模式、存儲器bank0的數據寬度、時鐘模式等。 OM[1:0] = 01b、10b:bank0數據
26、寬度為16位、32位,OM[1:0]=11b:測試模式 ? Nand flash的存儲頁面大小應該為512字節(jié)。 ? NCON :Nand flash 尋址步驟數選擇 0:3步尋址; 1:4步尋址 (4)Nand Flash操作的校驗問題 S3C2410A在寫/讀操作時,每512字節(jié)數據自動產生3字節(jié)的ECC奇偶代碼(24位)。 24位 ECC 奇偶代碼=18位行奇偶 + 6位列奇偶 ECC產生模塊執(zhí)行以下步驟: 當MCU寫數據到Nand時,ECC產生模塊生成ECC代碼。 當MCU從Nand讀數據時,ECC產生模塊生成ECC代碼同時用戶程序將它與先前寫入時產
27、生的ECC代碼比較。 1.3.4 JTAG調試接口模塊 JTAG(Joint Test Action Group,聯合測試行動小組)是一種國際標準測試協議,主要用于芯片內部測試及對系統進行仿真、調試。JTAG技術是一種嵌入式調試技術,它在芯片內部封裝了專門的測試電路TAP(Test Access Port,測試訪問口),通過專用的JTAG測試工具對內部節(jié)點進行調試。 一、JTAG接口主要結構 在硬件結構上,JTAG接口包括兩部分:JTAG端口和控制器。與JTAG接口兼容的器件可以是微處理器(MPU)、微控制器(MCU)、PLD、CPL、FPGA、ASIC或者是其他符合I
28、EEE 1149.1規(guī)范的芯片。 JTAG接口主要包括四個引腳:TMS、TCK、TDI和TDO以及一個可選配的引腳TRST,用于驅動電路模塊和控制執(zhí)行規(guī)定操作。各引腳功能如下。 (1)TCK(Test Clock Input):JTAG的測試時鐘,為TAP控制器和寄存器提供測試參考。在TCK的同步作用下通過TDI和TDO引腳串行移入或移出數據及指令。同時,TCK為TAP控制器提供時鐘。 (2)TMS:TAP控制器的模式輸入信號。TCK的上升沿時刻TMS的狀態(tài)確定TAP控制器即將進入的工作狀態(tài)。通常TMS引腳具有內部上拉電阻,以保證引腳在沒有驅動時處于邏輯1狀態(tài)。 (3)TDI
29、:JTAG指令和數據寄存器的串行數據輸入端。TAP控制器的當前狀態(tài)及保存在指令寄存器中的具體指令決定對于一個特定的操作由TDI裝入哪個寄存器。在TCK的上升沿時刻,TDI引腳狀態(tài)被采樣,結果送到JTAG寄存器組。 (4)TDO:JTAG指令和數據寄存器的串行數據輸出端。TAP控制器的當前狀態(tài)及保存在指令寄存器中的具體指令決定對于一個特定的操作那個寄存器的內容送到TDO輸出。 (5)TAST:測試復位信號,低電平有效,為TAP控制器提供異步初始化信號。 二、JTAG接口定義 JTAG接口的連接有兩個標準,即14針接口和20針接口,接口形狀如下圖所示。 圖4 JTAG接口圖
30、 其引腳定義如下: 表1 JTAG 引腳定義 序號 引腳定義 序號 引腳定義 1 VDD33V 2 VDD33V 3 nTRST 4 GND 5 TDI 6 GND 7 TMS 8 GND 9 TCK 10 GND 11 下拉電阻 12 GND 13 TDO 14 GND 15 nRESET 16 GND 17 NC 18 GND 19 NC 20 GND 1
31、.3.5 UART通用異步串行接口 一、概述 S3C2410 的UART(通用異步串行口)有三個獨立的異步串行I/O 端口:UART0、UART1、UART2,每個串口都可以在中斷和DMA 兩種模式下進行收發(fā)。UART支持的最高波特率達230.4kbps。 每個UART 包含:波特率發(fā)生器、接收器、發(fā)送器和控制單元。波特率發(fā)生器以PCLK或UCLK為時鐘源。發(fā)送器和接收器各包含1個16 字節(jié)的FIFO 寄存器和移位寄存器。 S3C2410 的3個UART都有遵從1.0規(guī)范的紅外傳輸功能, UART0、UART1有完整的握手信號,可以連接MODEM。 當發(fā)送數據的時候,數
32、據先寫到FIFO 然后拷貝到發(fā)送移位寄存器,然后從數據輸出端口(TxDn)依次被移位輸出。被接收的數據也同樣從接收端口(RxDn)移位輸入到移位寄存器,然后拷貝到FIFO 中。 二、串行口結構和工作原理 主要有4部分構成:接收器、發(fā)送器、波特率發(fā)生器、控制邏輯等。 (1)串行口的操作 數據幀格式:可編程,包含1個開始位、5 到8 個數據位、1個可選的奇偶校驗位、1個或2個停止位,通過線路控制器(ULCONn)來設置。 發(fā)送中止信號:迫使串口輸出邏輯0 ,這種狀態(tài)保持一個傳輸幀的時間長度。通常在一幀傳輸數據完整地傳輸完之后,再通過這個全0 狀態(tài)將中止信號發(fā)送給對方。中止信號發(fā)送
33、之后,傳送數據連續(xù)放到FIFO 中(在不使用FIFO 模式下,將被放到輸出保持寄存器)。 接收器具有錯誤檢測功能:可以檢測出溢出錯誤,奇偶校驗錯誤,幀錯誤和中止狀況,每種情況下都會將一個錯誤標志在接收狀態(tài)寄存器置位。 (2)串行口的波特率發(fā)生器 每個UART 的波特率發(fā)生器為傳輸提供了串行移位時鐘。波特率產生器的時鐘源可以從S3C2410 的內部系統時鐘PCLK或UCLK 中來選擇。波特率數值決定于波特率除數寄存器(UBRDIVn)的值,波特率數與UBRDIVn 的關系為: UBRDIVn=(int)(CLK/( f B*16))- 1 其中CLK為所選擇的時鐘頻率, f
34、 B為波特率。 f B= CLK/16/ ( UBRDIVn + 1 ) 例如,如果波特率為115200bps 且PCLK 或UCLK 為40MHz,則UBRDIVn 為: UBRDIVn =(int)(40000000)(115200*16)) - 1 = (int)(21.7) - 1 = 21- 1 = 20 (3)串行口波特率誤差極限 在應用中,實際波特率往往與理想波特率有差別,其誤差不能超過一定的范圍,其極限為:UART傳輸10bit數據的時間誤差應該小于1.87%(3/160)。 t_true = (UBRDIVn +
35、 1)×16×10 / PCLK 實際的傳輸10bit所需時間 t_ideal = 10 / baud_rate 理想情況下傳輸10位需要的時間 UART error=( ( t_true – t_ideal ) / t_ideal )×100% (4)串行口的自動流控制功能 UART0和UART1不僅有完整的握手信號,而且有自動流控制功能,在寄存器UMCONn中設置實現。自動流控制是利用信號nRTS、nCTS來實現的。在接收數據時,只要接收FIFO中有兩個空字節(jié)就會使nRTS有效,使對方發(fā)送數據;在發(fā)送數據時,只要nCTS有效,就會發(fā)送數據。其實現過程如下圖
36、所示。 nRTS:請求對方發(fā)送 nCTS:清除請求發(fā)送 注意:這種自動流控制應用于對方也是UART設備,不能應用于MODEM設備。 圖5(a) UART A (b)UART B (5)中斷或DMA請求 每個UART都有3類、7種事件產生中斷請求或者DMA請求。 7種中斷請求事件是:溢出錯誤、奇偶校驗錯誤、幀格式錯誤、傳輸中斷信號、接收緩沖器數據就緒、發(fā)送緩沖器空、發(fā)送移位器空。 它們可以分成3類:錯誤中斷請求、接收中斷請求、發(fā)送中斷請求。 接收中斷: 非FIFO模式:當接收緩沖寄存器收到數據后,產生中斷
37、請求。 FIFO模式:Rx FIFO中數據的數目達到了觸發(fā)中斷的水平,或者超時(在三幀時間內未收到任何數據),均產生中斷請求。 發(fā)送中斷: 非FIFO模式:當發(fā)送緩沖器空時,產生中斷請求。 FIFO模式:Tx FIFO中數據的數目達到了觸發(fā)中斷的水平。 錯誤中斷: 一共有4種錯誤中斷:溢出錯誤、奇偶檢驗錯誤、幀格式錯誤、傳輸中斷信號錯誤。 非FIFO模式:只要有任何一個錯誤出現,就會產生中斷請求。 FIFO模式:Rx FIFO中數據溢出,或者出現了幀格式錯誤、奇偶校驗錯誤、傳輸中斷信號錯誤,都會產生中斷請求。 (6)循環(huán)檢測模式 S3C2410
38、X的每一個UART都提供有檢測功能,它是一種數據循環(huán)流動的自發(fā)、自收方式,數據從發(fā)送緩沖器傳送到TXD,數據不經過引腳輸出,在內部將數據傳到接收引腳RXD,再傳輸到接收緩沖器。 1.3.6 通用 IO 口:CON-GPIO S3C2410 內部資源眾多,SBC2410X 引出了剩余資源的引腳供用戶擴展之用。 CON- GPIO 包含 10 路中斷,6 路 AD 輸入,1 組 SPI 接口等,如下圖表所示為。 表2 CON-GPIO 接口引腳定義 序號 引腳定義 序號 引腳定義 1 VDD33V 2 VDD33V 3
39、 EINT0 4 EINT4 5 EINT5 6 EINT6 7 EINT11 8 EINT13 9 EINT14 10 EINT15 11 EINT16 12 EINT19 13 GND 14 GND 15 I2CSDA 16 I2CSCL 17 CLKOUT0 18 CLKOUT1 19 GPB0 20 GPB1 21 Vref 22 GPB6 23
40、AIN1 24 AIN0 25 AIN3 26 AIN2 27 AIN6 28 AIN4 29 VDD5V 30 VDD5V 31 SPIMISO 32 SPIMOSI 33 SPICLK 34 nSS_SPI 35 GND 36 GND 1.3.7 USB接口 Samsung S3C2410X CPU 帶有 2 個 USB 接口,一個作為 Host(可配置為 Slave 模式), 一個是 Slave。SBC2410X 把這兩個接口均引出,其中 USB 8、HOST 使用 PC 上常見 A 型
41、 口 , USB DEVICE 使用 B 型口,見下圖: 圖5(a)US 圖6(a) (b) 1.3.8 LCD觸摸屏 一、概述 所謂觸摸屏,從市場概念來講,就是一種人人都會使用的計算機輸入設備,或者說是人人都會使用的與計算機溝通的設備。 從技術原理角度講,觸摸屏是一套透明的絕對尋址系統,首先它必須保證是透明的,因此它必須通過材料科技來解決透明問題;其次它是絕對坐標,手指摸哪就是哪,不需要第二個動作,觸摸屏軟件都不需要游標,因為游標是給相對定位的設備用的,相對定位的設備要移動到一
42、個地方首先要知道現在在何處,往哪個方向去,每時每刻還需要不停的給用戶反饋當前的位置才不致于出現偏差。這些對采取絕對坐標定位的觸摸屏來說都不需要;再次就是能檢測手指的觸摸動作并且判斷手指位置,各類觸摸屏技術就是圍繞“檢測手指觸摸”而實現功能的。 二、特性 (1)觸摸屏的第一個指針:光學特性。 它直接影響到觸摸屏的視覺效果。但是觸摸屏是多層的復合薄膜,光學特性上包括四個方面:透明度、色彩失真度、反光性和清晰度。 (2)觸摸屏的第二個特性:穩(wěn)定性。 觸摸屏是絕對坐標系統,要選哪就直接點那,與鼠標這類相對定位系統的本質區(qū)別是一次到位的直觀性。絕對坐標系的特點是每一次定位坐標與上一次定位坐標
43、沒有關系,觸摸屏在物理上是一套獨立的坐標定位系統,每次觸摸的資料通過校準資料轉為屏幕上的坐標,這樣,就要求觸摸屏這套坐標不管在什幺情況下,同一點的輸出資料是穩(wěn)定的。 如果不穩(wěn)定,那幺這觸摸屏就不能保證絕對坐標定位,點不準,這就是觸摸屏最怕的問題:漂移。技術原理上凡是不能保證同一點觸摸每一次采樣資料相同的觸摸屏都免不了漂移這個問題,目前有漂移現象的只有電容觸摸屏。 (3)觸摸屏的第三個特性:相應性。 檢測觸摸并定位, 各種觸摸屏技術都是依靠各自的傳感器來工作的,甚至有的觸摸屏本身就是一套傳感器。各自的定位原理和各自所用的傳感器決定了觸摸屏的反應速度、可靠性、穩(wěn)定性和壽命。 觸摸
44、屏的傳感器方式還決定了觸摸屏如何識別多點觸摸的問題,也就是超過一點的同時觸摸怎幺辦?有人觸摸時接著旁邊又有人觸摸怎幺辦?這是觸摸屏使用過程中經常出現的問題,我認為最理想的方式是:超過一點的同時觸摸誰也不判斷,一直等到多點觸摸移走,有人觸摸接著又有人觸摸應該是分先后都判斷,當然是技術上可能的話。 三、LCD接口定義 表3 SBC2410X 板上 50 針 LCD 接口(注 1 腳位置) 引腳定義 序號 序號 引腳定義 VCC(注) 2 1 VCC GND 4 3 VCC VD0 6 5 nRESET VD2 8 7 VD1 VD4 10 9 V
45、D3 VD6 12 11 VD5 VD8 14 13 VD7 VD10 16 15 VD9 GND 18 17 VD11 VD13 20 19 VD12 VD15 22 21 VD14 VD17 24 23 VD16 VD19 26 25 VD18 VD21 28 27 VD20 VD23 30 29 VD22 LCD_PWREN 32 31 GND LCDVF1 34 33 LCDVF2 VM/VDEN 36 35 LCDVF0 VLINE/HSYNC 38 37 VFRAME/V
46、SYNC LEND 40 39 VCLK/LCD_HCLK GND 42 41 nDIS_OFF nXPON 44 43 XMON GND 46 45 AIN7 nYPON 48 47 YMON GND 50 49 AIN5 注:通過 J27 跳線可以在 3.3V 和 5V 之間選擇 LCD 的供電電壓。 1-2 短接選擇 5V 供電; 2-3 短接選擇 3.3V 供電 內蒙古科技大學畢業(yè)設計說明書(畢業(yè)論文) 第二章 Linux開發(fā)平臺的建立 2.1 Linux開發(fā)環(huán)境概述 Linux是起源于UNIX,以POS
47、IX標準為框架,發(fā)展起來的一種免費操作系統,Linus Torvald 是Linux的創(chuàng)建者,全世界熱情的程序員們推動了這項事業(yè)。Linux版本號分為兩種:內核版本和發(fā)行版本。目前全世界最流行的Linux發(fā)行版本是Red Hat Linux,它不僅的內核可以定制,角色靈活,GUI而選,而且便于遠程管理,同時它良好的穩(wěn)定性和可靠性更適合政府、軍事和金融等關鍵部門使用。 2.2 red hat Linux9.0的安裝 2.2.1 Red Hat Linux9安裝前準備 在PC機上安裝Red Hat Linux9, CPU至少需要200MHZ,內存需要128M,硬件空間大約5.0G。同時安裝
48、過程中需要對磁盤進行分區(qū),且設置普通用戶名、密碼和root用戶及其密碼。整個安裝過程大約需要一個半小時,我們采用的是鏡像安裝,光盤安裝時間比較長,此外還有其他注意事項需參考相關資料。 安裝時,可以直接使用光盤,也可采用鏡像安裝。本設計采用鏡像安裝,首先準備好軟件包文件夾,其中包括Linux鏡像安裝包和一個VMware Workstation 6.0.0漢化版安裝文件。 2.2.2 安裝流程 做好準備工作后,首先打開VMware Workstation 6.0.0漢化版安裝文件,點擊安裝圖標,桌面上出現VMware Workstation后開始進一步安裝。、 根據提示點擊New Vir
49、tual Machine 按鈕,進入下一步選擇經典安裝,選擇Linux,然后選擇自己的虛擬機名字和安裝位置。當出現網路選擇時,選擇Use bridge networking。對磁盤選擇至少需要10G以上,然后點擊完成即可。 此時出現虛擬機界面,點擊Start this virtual machine,虛擬機將自動檢測鏡像文件,開始安裝光盤文件,共三張光盤。安裝光盤引導虛擬機進入Redhat Linux安裝,出現Welcome Red Hat Linux 畫面后,直接點擊下一步進入下一個操作。分別選擇簡體中文,美式鍵盤,帶滑輪鼠標(PS/2),然后選擇定制安裝類型,后面將對硬盤進行手工分區(qū)。點
50、擊下一步彈出詢問對話框,點擊是刪除所有數據。 在新窗口進行分區(qū)操作,首先點擊新建,跳出“添加分區(qū)”窗口,文件類型為swap,大小為PC機內存的2倍,因主機內存為1G,所以swap 文件系統大小為2048MB;然后再點新建,跳出“添加分區(qū)”窗口,選擇掛接點為“/”,文件系統為ext3,使用全部可用空間,并強制為主分區(qū),點“確定出現警告界面,點擊“繼續(xù)”,返回界面,分區(qū)成功。 下一步編輯引導菜單,默認結果。接下來的網絡設置,選擇靜態(tài)網絡,并去掉DHCP,根據需要輸入IP和子網掩碼。然后手工設置自己的主機名FriendlyARM,網關和DNS。對于安全級別選擇無防火墻,系統語言為簡體中文,時區(qū)采
51、用亞洲上海。 下一步設置根口令即root用戶的密碼,驗證配置,默認即可。然后選擇全部軟件包,才算完全安裝Redhat9.0,點擊下一步出現即將安裝畫面,下面將開始三張光盤的安裝,該過程持續(xù)時間較長,大約一個小時左右。軟件包安裝完畢后,進行其他配置。 下一畫面引導盤創(chuàng)建選擇“否”,圖形化界面默認,自動檢測顯示器默認,同樣定制圖形化配置默認,同時第三張光盤安裝完畢。進入最后一個安裝畫面,退出,安裝完畢。 此時系統自動進入Redhat Linux的歡迎界面,進行Red Hat Linux 9基本配置,前進創(chuàng)建個人用戶,此為普通用戶登陸名,且設有自己的密碼,不同與root用戶登陸。然后為Lin
52、ux系統設置時間和日期,并檢測聲卡。同時選擇不注冊系統,額外光盤默認,前進結束設置。 然后以root用戶登陸,進行Linux系統在ARM平臺的移植和應用。 Root登錄后界面如下: 2.2.3 構建交叉編譯器 1、 交叉編譯器 Arm-linux-gcc是一個用于Linux-2.4.18內核的交叉編譯器,它包括編譯器、匯編器鏈接器、調試器、庫函數等。交叉編譯器就是在一個平臺上(虛擬機+Linux系統平臺)生成能夠在另外一個平臺上(ARM開發(fā)板+Linux系統平臺)運行的代碼。 平臺包括兩個概念:體系結構和操作系統。同一個體系可以運行不同的操作系統;同樣,同一個操作系統也可以在
53、不同的體系結構上運行。由于ARM目標板上無法安裝所需的編譯器,只好借助宿主機,在宿主機上對即將運行在目標板上的應用程序進行編譯,生成可在目標機上運行的代碼格式,將生成的代碼下載到目標機上就可運行。 2、解壓Linux開發(fā)包 解壓Linux開發(fā)包是構建系統開發(fā)環(huán)境的第一步。在Linux操作系統環(huán)境下解壓SBC2410開發(fā)光盤內的Linux開發(fā)包,有兩種方法。 法一 在Linux系統下掛在光盤 法二 虛擬機與主機間設置共享文件夾,把Linux開發(fā)包放在共享文件夾內解壓,此時需在開機狀態(tài)下以root用戶登陸。本設計采用。 首先在主機建立共享文件夾qhx,放在E盤Linux文件夾下,然后Li
54、nux開發(fā)包放入其中。 (1)在虛擬機界面下,選擇菜單條的VM-seting,彈出一個畫面,點擊options,選擇share folds,點擊右側窗口內的add,進行共享文件設置。選本設計共享文件夾:E/linux/qhx (2)選擇菜單條的VM-Install VMware Tools ,安裝tools工具,完成后Linux系統界面出現光盤圖標:VMware Tools,在/mnt/cdrom/下自動掛在VMware Tools壓縮包。 (3)在linux系統終端下進入系統根目錄,執(zhí)行命令: cp /mnt/cdrom/VMwareTools-5.0.0-13124.tar.gz
55、/tmp (4)進入系統目錄/tmp目錄: tar –zxvf VMwareTools-5.0.0-13124.tar.gz 解壓時間約15s,解壓后在/tmp/生成vmware-tools-distrib文件,大小為112.6MB. (5)進入新文件夾:cd vmware-tools-distrib 然后執(zhí)行./vmware-install.pl 依照詢問進行安裝,完成后回到終端。此時在/mnt/hgfs目錄下看到共享文件夾:qhx 至此,虛擬機與主機間共享文件夾設置完畢。 下面解壓/mnt/hgfs/linux/qhx/Linux下的linux開發(fā)包: tar –xvzf
56、 /mnt/hgfs/linux/qhx/Linux/sbc2410v6_linux-2.4.18 _sdk.tgz –C / 3、安裝交叉編譯器 (1)解壓安裝光盤中的編譯器arm-linux-gcc-2.95.3.tgz,版本為2.95.3,在編譯Linux2.4.18版本是使用該編譯器。 共享法操作為:tar –xvzf /mnt/hgfs/linux/qhx/Linux/arm-linux-gcc -2.95.3.taz –C / 解壓25s后,將在/usr/local/目錄下生成arm文件夾,此文件夾大小為177.2MB.解壓前,/usr目錄大小為4.0G,解壓后/usr
57、目錄大小變?yōu)?.2G. (2)編輯/etc/profile系統環(huán)境變量文件,把編譯器路徑加入到系統路徑: (3)重新啟動系統以root身份登錄 (4)在終端的命令行輸入arm-linux-gcc –v檢查編譯器是否安裝: #arm-linux-gcc –v 回車后,顯示如下信息則表示交叉編譯器已安裝: Read specs form /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux /2.95.3/specs gcc version 2.95.3 20010315(release) 此時編譯器已經安裝。 2.2.4 Linux下mi
58、nicom的設置 Minicom是Linux 上最常用的終端仿真程序,它類似于Windows 下的“超級終端”的程序,一般完全安裝大部分發(fā)行版的Linux 時都會包含它。 使用minicom 之前先設置一下,如下圖所示: #minicom -s ;加“-s”選項設置minicom 選擇菜單中的“Serial port setup”,按回車,進入如下圖所示界面。此時按“A”以設置“SerialDevice”(本設計使用串口4,則輸入/dev/ttyS4)。 設置“SerialDevice” 按“E”鍵進入設置“bps/par/Bits”(波特率)界面,如下圖所示。再按“I”以
59、設置波特率為115200。 設置波特率 然后按回車退回到上一級菜單,按“F”鍵設置“Hardware Flow Control”為“NO”,其他選項使用缺省值,如下圖所示。 設置“Hardware Flow Control” 設置完畢,按回車鍵返回到串口設置主菜單,選擇“Save setup as dfl”,按回車鍵保存剛才 的設置,如下圖所示 保存設置 再選擇“Exit”退出設置模式。剛才的設置被保存到“/etc/minirc.dfl”。 設置完畢,如果此時打開板子的電源開關,就會看到vivi 的啟動信息,當Linux 啟動以后, minicom 就相當于虛
60、擬終端,你就能通過它來操作目標板了。 要退出minicom,同時按下“Ctrl+A”鍵,松開后緊接著再按下“Q”鍵,在跳出的窗口中, 選擇“Yes”,如圖所示 退出minicom 2.3 Linux系統的配置和編譯 2.3.1 嵌入式Bootloader 在嵌入式系統中,通過Bootloader可以完成對系統板上的主要部件如CPU、SDARM、Flash、串口等進行初始化,也可下載文件到系統板上,對Flash進行檫除和編程。當運行操作系統時,它會在系統內核運行之前運行,通過它可以分配內存空間的映射,從而將系統的軟硬件環(huán)境帶到一個合適的狀態(tài),為最終調用系統內核做好準備。
61、 Bootloader是依賴于硬件實現的,除了依賴CPU的體系結外,Bootloader也依賴于具體的嵌入式板級設備的配置。 它包括兩種不同的模式:啟動加載模式和下載模式。啟動加載模式,即Bootloader從目標上的某個固態(tài)存儲設備上將操作系統加載到RAM中運行,整個過程并沒有用戶的介入。此模式為Bootloader的正常工作模式,因此在嵌入式產品發(fā)布的時候,Bootloader必須工作在這種模式下;下載模式下,目標機上Bootloader將通過串口連接或網絡連接等通信手段從開發(fā)主機上下載文件到RAM中,如下載內核映像和根文件系統映像等。從主機下載的文件通常首先被Bootloade
62、r保存到目標機RAM中,然后在被Bootloader到目標機的Flash類固態(tài)存儲設備中。此模式通常在第一次安裝內核和根文件系統時被使用。此外以后的系統更新中也會使用。本設計的Bootloader工作在下載(Downloading)模式下。 2.3.1 配置和編譯vivi 正確建立linux移植的前提條件是具備與linux配套、易于使用的Bootloader,它能夠正確完成硬件系統的初始化和linux系統的引導。本系統采用的Bootloader是vivi。 配置和編譯vivi的過程如下: (1)進入vivi的源代碼目錄:cd /opt/FriendlyARM/SBC2410/vivi
63、 (2)配置vivi:make menuconfig 輸入命令后,可以根據具體的ARM開發(fā)板改變vivi的設置,選擇yes保存設置推出。本設計使用了vivi的默認設置,可以瀏覽vivi的默認設置。 此時可回車,進入下一個界面,瀏覽和配置Systerm Type。選擇Exit。退出。 配置完成后,選擇Exit推出,選擇yes保存設置。 (3)編譯vivi: make 編譯結果是生成了vivi、vivi-elf、vivi.map 編譯成功后,在當前目錄下生成二進制映像文件vivi,71.9K,vivi-elf,151.0K。 2.3.2 配置和編譯內核 配置和編譯內核過程
64、如下: (1)進入內核目錄: cd /opt/FriendlyARM/SBC2410/kernel (2)配置內核: make menuconfig 出現配置窗口,選擇load an alternate configuration file (倒數第二行) 輸入本設計內核:config_sbc2410_tp-nec35,是公司已經配置好的內核。 然后在kernel Configuration界面中選擇第三項,進入System Type界面,點擊“Y” 鍵選中所有920T的項,按ESC鍵退出System Type界面,繼續(xù)配置其他項,保存后退出。系統保存配置后,退出到終端下。
65、(3)編譯內核 make clean 該命令用于清除以前構造的內核的所有目錄文件、模塊文件和臨時文件。 make dep 該命令用于尋找各文件的依存關系。 make zImage 編譯內核中的文件,生成內核。編譯通過則在/arch/arm/boot/目錄下生成二進制內核映像文件zlmage,大小為911.6K,此大小與內核配置有關,大小不固定。 2.4 制作YAFFS文件系統 使用mkyffsimg程序可以把一個目錄做成一個yaffs映像文件,為使用方便,先把它拷貝到/usr/bin目錄下。 #cd /opt/FriendlyARM/SBC2410/mkyaffs #cp
66、 mkyaffsimage /usr/bin 2.4.1 制作基本文件系統映像 制作版子所需的基本系統映像文件,步驟如下: #cd/opt/FriendlyARM/SBC2410 #mkyaffsimage root_defaultsbc2410_fs.img 將在/opt/FriendlyARM/SBC2410目錄下生成sbc2410_fs.img,需時1min,大小為10M。 2.4.2 制作帶Qtopia的文件系統映像 制作帶Qtopia的文件系統(使用觸摸),步驟如下: #cd /opt/FriendlyARM/SBC2410 #mkyaffsimage root_qtopia_tp sbc2410_qtopia.img 將在/opt/FriendlyARM/SBC2410目錄下生成sbc2410_qtopia.img,需時4min,大小為39.1M。 下一步應該進行Linux操作系統到ARM平臺的移植的實現,為了不影響開發(fā)板的壽命,使用已燒寫好的程序。 2.5 設計所用Linux工具及其基本指令 (1)文件列表 – ls ls #以默認方式顯
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 植樹問題講課
- 小小圖書館賈世喜
- 小班數學:變得一樣多
- 蘇教版三年級數學上冊教學ppt課件58:解決問題的策略復習
- 小學科學六下《拓展與應用》-公開課一等獎ppt課件
- 高中英語人教版選修七Unit-2-Robots-ppt課件
- 第九章長期負債課件
- 皮膚免疫系統課件
- 辦公樓施工現場消防安全管理要求規(guī)范課件
- freeroi在功能磁共振roi分析中的應用
- 《永遇樂·京口北固亭懷古》用典講解課件
- 《秋天的雨》微課課件
- 護患溝通技巧-課件
- 《高等數學B》第十章___微分方程與差分方程__第6節(jié)__差分與差分方程的概念_、……課件
- 英語(人教版)九年級總復習題型訓練補全對話(含最新原創(chuàng)題)課件