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