新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一種基于ARM的嵌入式網關系統設計與實現

        一種基于ARM的嵌入式網關系統設計與實現

        作者: 時間:2009-08-03 來源:網絡 收藏

        s3c2410_mcp2510_read用于將MCP2510從CAN總線上接收到接收緩沖器的數據,通過SPI總線讀到用戶區,并返回所讀出的字節數。
        s3c2410_mcp2510_ioctl用于控制CAN總線通信的波特率、設置幀ID、設置工作模式、設置設備濾波器等工作。
        s3c2410_mcp2510_release用于釋放所占用的內存、中斷等資源。
        3.2.2 CAN設備的初始化函數
        CAN設備的初始化函數主要負責創建CAN設備的節點設備文件、注冊CAN設備的中斷處理函數、初始化MCP2510等工作。

        本文引用地址:http://www.104case.com/article/152398.htm

        在Linux中,初始化函數從s3c2410_mcp2510_init()開始。通過調用register_chrdev向注冊字符型設備驅動程序;通過devfs_register()函數創建設備文件的CAN設備節點。同時,CAN設備驅動程序通過調用request_irq函數來申請中斷,向系統注冊CAN設備的CAN中斷處理函數s3c2410_isr_mcp2510()。在了MCP2510的各個接口函數后,還需要編寫MCP2510的模塊加載函數module_init()和模塊卸載函數module_exit(),用于向內核注冊設備及注銷設備。
        3.2.3 驅動程序的加載與使用
        Linux設備驅動會以內核模塊的形式出現。Eth-ernet/CAN設備驅動程序作為內核的一部分,應在編譯時把設備驅動程序編譯成可加載的模塊。當使用insmod命令加載內核模塊時,模塊的加載函數mod-ule_init(初始化函數名)會自動被內核執行,將初始化函數加入內核全局初始化函數列表中,在內核初始化時執行驅動的初始化函數,從而完成驅動的初始化和注冊,之后驅動便停止等待,被應用程序調用。當用rm-mod命令卸載某內核模塊時,模塊的卸載函數module_exit(退出處理函數名)也會自動被內核執行,完成與模塊加載函數相反的功能。當驅動程序加載到內核中后,就可將CAN設備文件進行open,read,write,release等操作。


        4 結語
        隨著工業控制系統性能的提高,以太網在工業上的應用也會越來越廣泛。在此詳細介紹了一種。作為連接以太網和現場總線的紐帶,以太網與CAN現場總線之間的協議轉換,為CAN/Ethernet的互聯提供了一種傳輸速度快、成本低,穩定性和安全性高的解決方案。同時,利用處理器,接口資源豐富,通用性強,便于擴展其他現場總線與以太網的互聯,具有較好的應用推廣價值。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 华安县| 阳信县| 宿松县| 喀喇| 扶余县| 固安县| 县级市| 报价| 鱼台县| 北流市| 林周县| 于田县| 舟曲县| 彭阳县| 阿克陶县| 家居| 阳江市| 扎鲁特旗| 女性| 美姑县| 七台河市| 永修县| 永善县| 靖江市| 大邑县| 怀宁县| 陆良县| 康平县| 许昌县| 福海县| 盖州市| 济南市| 宁远县| 永年县| 平阳县| 永嘉县| 高邮市| 敦化市| 长海县| 天水市| 读书|