新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ARM開發板+uCLinux的網絡控制系統設計與實現

        基于ARM開發板+uCLinux的網絡控制系統設計與實現

        作者: 時間:2012-11-16 來源:網絡 收藏

          首先。選定開發板上沒有使用過的GPIO端口,設定其輸入/輸入狀態,然后根據客戶端返回的信息對端口進行操作,輸出0/1的電平,以使其外部連接的繼電器動作。從而控制設備的運轉。程序主要通過函數ioctl來實現。ioctl是設備驅動程序中對設備的I/O通道進行管理的函數,通過它可對設備的一些特性進行控制.其函數原形為:

          int ioctl(int fd,ind cmd,…);

          其中,fd是用程序打開設備時,使用open函數返回的文件標示符;cmd是用戶程序對設備的控制命令;至于后面的省略號,則是一些補充參數(一般最多一個,有或沒有是和cmd的意義相關的)。在這里,可通過如下一組函數來實現:

          ioctl(fd1,GPIO_SET_PIN_IN,devicel);

          //設置管角為輸出狀態;

          ioctl( fd2, GPIO_SET_PIN_OUT, devicel_state);

          //設置管角為輸入狀態;

          ioctl(fd2,GPIO_READ_PIN,devicel_state);

          //讀取設備狀態管角;

          ioctl(fd1,GPIO_CLR_PIN,device);

          //清除設備管角控制信號;

          2.3 網絡通信程序

          網絡通信程序可使用TCP/IP協議下標準的socket套接字編寫。套接字(socket)是網絡通信的基本操作單元。它提供了不同主機間進程雙向通信的端點。這些進程在通信前應各自建立一個socket,并通過對socket的讀/寫操作實現網絡通信功能。常用的套接字有兩種:流式套接字(Stream Socket)和數據報套接字(Datagram Socket)。其中,流式套接字是可靠的面向連接的通信數據流,是無錯誤的傳輸;而數據報套接字則使用UDP來傳送數據包,數據包的順序是沒有保障的。本系統采用流式套接字進行程序設計。

          流式套接字的服務進程和客戶進程建立連接及通信的程序流程如圖3所示。現具體說明如下:

          (1)服務進程首先調用socket()創建一個流式套接字,并調用bind()將服務器地址捆扎在該套接字上,接著調用listen()監聽連接請求,隨后調用accept()做好與客戶進程建立連接的準備。無連接請求時,服務進程被阻塞;

          (2)客戶進程先調用socket()創建流式套接字,然后調用connect()向服務進程發出連接請求;

          (3)當連接請求到來后,服務進程被喚醒,并生成一個新的流式套接字。同時用新套接字同客戶進程的套接字建立連接,而服務進程最早生成的套接字則繼續用于監聽網絡上的服務請求;

          (4)服務進程和客戶進程通過調用send()和recv()來交換數據,服務器可向客戶端傳送所收集的數據。客戶端則向服務器反饋控制信息和參數調整信息;

          (5)服務進程或客戶進程可通過調用close()來撤消套接字并中斷連接。

          服務器端的程序通過交叉編譯環境編譯后。可通過NFS(網絡文件系統)下載到開發板中,然后手動加入到rc引導文件中。即可實現開機自動運行。

          3 結束語

          基于和CLinux嵌入式系統代表了目前嵌入式系統的發展方向。嵌入式系統與網絡技術和控制技術相結合.是嵌入式系統發展的必然趨勢。本文討論了基于+平臺的設計與實現方法。并對該平臺下應用TCP/IP協議進行網絡通信進行了探討。該方法對于自動化樓宇、工業控制、智能家居等方面都有一定的借鑒意義。參考文獻:

        [1].7TDMIdatasheethttp://www.dzsc.com/datasheet/ARM7TDMI_139812.html.
        [2].LPC2210datasheethttp://www.dzsc.com/datasheet/LPC2210_454566.html.
        [3].ROMdatasheethttp://www.dzsc.com/datasheet/ROM_1188413.html.


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 咸丰县| 班玛县| 彩票| 恩平市| 浦江县| 喜德县| 旅游| 庐江县| 宜昌市| 凌云县| 象州县| 昌都县| 西畴县| 凯里市| 贞丰县| 太康县| 金乡县| 桐城市| 齐河县| 青冈县| 汉沽区| 蒲城县| 万源市| 连江县| 陈巴尔虎旗| 五台县| 开阳县| 张家界市| 安陆市| 库车县| 万载县| 永仁县| 侯马市| 新密市| 漾濞| 博乐市| 屏东县| 西盟| 普兰店市| 阿拉善右旗| 宾阳县|