新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于S3C4480X的嵌入式以太網接口設計

        基于S3C4480X的嵌入式以太網接口設計

        作者: 時間:2014-12-02 來源:網絡 收藏

          5驅動程序設計

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

          5.1程序設計思路

          在本設計方案中,驅動程序主要包含3個函數,即系統的初始化函數、接收數據包函數、發送數據包函數。 初始化部分完成RTL8019AS在使用之前的初始化工作,包括設置相關工作模式的寄存器、分配和初始化接收和發送緩沖區、初始化網卡接收地址等。

          

         

          MAR0-MAR7-多點地址寄存器:這8個寄存器的值是根據多播地址數組的值生成的,提供對多播地址的過濾,過濾掉一些不屬于自己接收多播數據包。

          這里均設為FFH,接所有多播地址的數據包:

          

         

          下面6條語句設置MAC地址,寄存器為PAR0~PAR5:實際地址寄存器,這些寄存用來對目標地址數據包進行比較,以確定接收或者拒絕接收。地址放在數組add[6]中。

          

         

          5.2數據的傳輸和發送

          數據的傳輸和發送由本地DMA傳輸和與遠程DMA傳輸兩部分完成,前者大部分工作由RTL8019AS自動完成,我們要做的是設置收發緩沖區的大小及指針變量,這些工作在RTL8019AS的初始化時已完成,因此只需要編寫遠程DMA讀寫函數。對遠端DAM口的讀寫,不同的只是數據傳輸方向,這里,僅以讀操作為例,即編寫從RTL8019AS接收緩沖區取數據包到。(注意:遠程DMA的寫函數,即向RTL8019AS發送緩沖區寫數據函數--send_data()省略。)

          

         

          5.3接口通信函數流程

          這里采用中斷和查詢相結合的方式來決定是否發送和接收數據。當RTL8019AS的ISR(中斷狀態寄存器)的任意一中斷位置位時,S3C4B0X都要對其進行中斷相應(在這里只關注第0中斷位和第1中斷位,即分別反映RTL8019AS已正確接收到數據和已成功發送數據包,因此在初始化函數中將其他位屏蔽)。這時要對ISR進行訪問,來判斷是何種中斷,進而作出相應的響應,如圖4所示。

          

         

          6結束語

          本設計經過軟硬件的調試,并已成功地進行數據傳輸。由于出眾的性價比及豐富的外圍接口,通過擴展本設計可以應用到嵌入式儀器儀表、工業數據采集網絡、嵌入式網絡控制等許多領域。

        c語言相關文章:c語言教程


        脈寬調制相關文章:脈寬調制原理
        鎖相環相關文章:鎖相環原理

        上一頁 1 2 3 下一頁

        關鍵詞: S3C4480X 以太網 三星

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 湛江市| 凤城市| 玉林市| 吕梁市| 贵南县| 阳信县| 满洲里市| 盐山县| 大足县| 吴忠市| 淮安市| 平舆县| 个旧市| 文安县| 汾西县| 平定县| 股票| 科尔| 博乐市| 巴彦淖尔市| 益阳市| 台南县| 贺兰县| 大冶市| 隆安县| 珠海市| 泽州县| 余庆县| 东至县| 蓝田县| 扬中市| 蒙自县| 大庆市| 湄潭县| 靖江市| 聊城市| 衡东县| 南投县| 林甸县| 通山县| 桂平市|