新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于S3C4480X的嵌入式以太網(wǎng)接口設(shè)計

基于S3C4480X的嵌入式以太網(wǎng)接口設(shè)計

作者: 時間:2014-12-02 來源:網(wǎng)絡(luò) 收藏

  5驅(qū)動程序設(shè)計

本文引用地址:http://m.butianyuan.cn/article/266271.htm

  5.1程序設(shè)計思路

  在本設(shè)計方案中,驅(qū)動程序主要包含3個函數(shù),即系統(tǒng)的初始化函數(shù)、接收數(shù)據(jù)包函數(shù)、發(fā)送數(shù)據(jù)包函數(shù)。 初始化部分完成RTL8019AS在使用之前的初始化工作,包括設(shè)置相關(guān)工作模式的寄存器、分配和初始化接收和發(fā)送緩沖區(qū)、初始化網(wǎng)卡接收地址等。

  

 

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

  這里均設(shè)為FFH,接所有多播地址的數(shù)據(jù)包:

  

 

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

  

 

  5.2數(shù)據(jù)的傳輸和發(fā)送

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

  

 

  5.3接口通信函數(shù)流程

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

  

 

  6結(jié)束語

  本設(shè)計經(jīng)過軟硬件的調(diào)試,并已成功地進(jìn)行數(shù)據(jù)傳輸。由于出眾的性價比及豐富的外圍接口,通過擴(kuò)展本設(shè)計可以應(yīng)用到嵌入式儀器儀表、工業(yè)數(shù)據(jù)采集網(wǎng)絡(luò)、嵌入式網(wǎng)絡(luò)控制等許多領(lǐng)域。

c語言相關(guān)文章:c語言教程


脈寬調(diào)制相關(guān)文章:脈寬調(diào)制原理
鎖相環(huán)相關(guān)文章:鎖相環(huán)原理

上一頁 1 2 3 下一頁

關(guān)鍵詞: S3C4480X 以太網(wǎng) 三星

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉