基于嵌入式Linux的遠程數據采集系統
在 ADS8344 與S3C2410 的連接圖中,S3C2410 的連接端都是通用的IO 信號。S3C2410 的IICSCL 接ADS8344 的片選信號,低電平有效。S3C2410 的nCD_SD 信號接ADS8344 的 數據輸入信號Din,當片選信號是低電平時(shí),數據將在DCLK 的上升沿被鎖存。S3C2410 的 WP_SD 信號接ADS8344 的串行數據輸出信號Dout,當片選信號是低電平時(shí),數據將在 DCLK 的上升沿被鎖存。S3C2410 的SDDATA3 信號接ADS8344 的忙信號BUSY。S3C2410 的IICSDA 信號接ADS8344 的DCLK 信號,最大的轉換頻率可達100K[2]。
2.3 網(wǎng)絡(luò )接口設計
系統采用 Cirrus 公司的CS8900 網(wǎng)絡(luò )接口芯片。CS8900 以太網(wǎng)接口芯片的內部集成 RAM、10BASE-T 收發(fā)濾波器,它提供8 位和16 位兩種接口,我們選用16 位模式,網(wǎng)卡芯 片復位默認工作方式為I/O 連接,寄存器的默認基址是300H[1]。因為CS8900 占用了S3C2410 的片選線(xiàn)nGCS3,則CS8900 寄存器的基址空間為0X6000000+300H。CS8900 與S3C2410 的 連接如圖3 所示。
3 軟件設計
3.1 系統軟件平臺配置
3.1.1 嵌入式Linux 的移植
首先在一臺 PC 機上安裝Linux 系統,從網(wǎng)絡(luò )上下載交叉編譯需要的軟件包:linux-2.6.16 內核、gcc-3.4.4 編譯器、glibc-2.3.3 編譯器、binutils-2.16 工具包和gdb-* 調試器。然后一 步步建立交叉編譯環(huán)境,根據具體目標平臺對與體系結構相關(guān)的源碼進(jìn)行必要的修改,對內 核裁減、編譯,生成一個(gè)內核映象文件。最后將內核及根文件系統燒寫(xiě)到目標平臺。
3.1.2 網(wǎng)絡(luò )設備驅動(dòng)程序
CS8900 驅動(dòng)程序是本系統的重要組成部分。所有的Linux 網(wǎng)絡(luò )驅動(dòng)程序都遵循通用的 接口,對每個(gè)網(wǎng)絡(luò )接口都用一個(gè)device 數據結構表示,網(wǎng)絡(luò )設備使用網(wǎng)絡(luò )接口管理表 dev_base,它是一個(gè)device 結構的指針。Linux 網(wǎng)絡(luò )各層之間的數據傳輸都通過(guò)sk_buff(套 接字緩沖區)完成的,每個(gè)sk_buff 包括一些控制方法和一塊緩沖區,這個(gè)區域存放網(wǎng)絡(luò )傳 輸的數據包[3]。內核的驅動(dòng)程序接口包括:打開(kāi)函數、關(guān)閉函數、探測函數、發(fā)送函數、接 收函數、中斷處理函數和其它函數;參考CS8900 技術(shù)文檔,通過(guò)編寫(xiě)這樣一系列函數來(lái)實(shí) 現具體的功能。
3.1.3 Qt/Embedded 開(kāi)發(fā)
Qt/Embedded 是一個(gè)為嵌入式設備上的圖形用戶(hù)接口和應用開(kāi)發(fā)而訂做的C++工具開(kāi) 發(fā)包。Qt 的C++類(lèi)庫封裝了適應不同操作系統的訪(fǎng)問(wèn)細節,它通??梢赃\行在多種不同的 處理器上部署的嵌入式Linux 操作系統上。除了類(lèi)庫以外,Qt/Embedded 還包括幾個(gè)提高開(kāi) 發(fā)速度的工具,使用標準的Qt API,可以熟練的在Windows 和Unix 編程環(huán)境里開(kāi)發(fā)應用程 序。下載tmake1.11、Qt/Embedded2.3.7 和Qt2.3.2 for X11 這樣幾個(gè)安裝包,根據開(kāi)發(fā)者具體 的開(kāi)發(fā)環(huán)境,在Linux 系統的PC 機上建立起Qt/Embedded 開(kāi)發(fā)環(huán)境,通過(guò)qmake 和Qt designer 這兩個(gè)工具可以快速的開(kāi)發(fā)出簡(jiǎn)潔精美的界面。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論