基于ARM微處理器的嵌入式以太網(wǎng)接口設(shè)計
1)OS_CPU.H 文件包括#define、typedef定義與CPU相關(guān)信息。因不同的處理器有不同的字長,所以μC/OS Ⅱ的移植包括一系列的類型定義,以確??梢浦残?。如INT16U 數(shù)據(jù)類型總是代表16 位無符號整數(shù),將μC/OS Ⅱ移植到32 位處理器上,也就意味著INT16U 實際上為無符號短整型數(shù)而不是無符號整型數(shù)。
2)OS _CPU _C.C 文件OSTaskCreatHook()、OSTaskDelHook()、OSTaskSwhook()、OSTaskStatHook()、OSTaskCreakHook(),這些函數(shù)為用戶定義,實際需要修改的只有OSTaskStkIinit()函數(shù)。OSTaskStkIinint()用來初始化任務(wù)堆棧,初始狀態(tài)的堆棧模擬發(fā)生一次中斷后的堆棧結(jié)構(gòu)。由于在ARM 中堆棧是按32 位數(shù)據(jù)類型來進(jìn)行操作,所以堆棧數(shù)據(jù)類型OS _STK 聲明為32 位無符號整數(shù)。
3)OS _CPU _A.ASM 文件這里要實現(xiàn)4 個匯編函數(shù)改寫:多任務(wù)啟動函數(shù)中調(diào)用OSSTartHightRdy()、任務(wù)切換函數(shù)OSCtxSw()、中斷任務(wù)切換OSIntCtxSw()和時鐘節(jié)拍服務(wù)函數(shù)OSTickISR()。任務(wù)切換函數(shù)OSCtxSw(),由任務(wù)切換函數(shù)OS _TASK _SW()進(jìn)入。如果任務(wù)執(zhí)行了某個函數(shù),其結(jié)果改變了當(dāng)前任務(wù)的狀態(tài)[如OSTaskSuspend()、OSTimeDly()],或者是改變了別的任務(wù)的狀態(tài)[OSTaskResum()、O S T i m e D l y R e s u m e ( ) ]都要引起新的任務(wù)調(diào)度函數(shù)[OSSched()]執(zhí)行OS _TASK _SW()。OSIntCtxSw()是在ISR中被調(diào)用的,其代碼與OSCtxSw () 類似。OSStartHightRdy()由OSStart ()函數(shù)調(diào)用,功能是運(yùn)行優(yōu)先級最高的任務(wù)。OSTickISR()是時鐘節(jié)拍中斷,用戶應(yīng)該在OSStart()運(yùn)行
后,μC/OS Ⅱ啟動運(yùn)行的第一個任務(wù)中初始化節(jié)拍中斷。
(2)初始化RTL8019AS
初始化部分完成RTL8019AS 在使用之前的初始化工作,設(shè)置相關(guān)工作模式的寄存器,分配和初始化接收和發(fā)送緩沖區(qū),初始化網(wǎng)卡接收地址。
(3)傳輸數(shù)據(jù)包
發(fā)送部分只要把數(shù)據(jù)寫入緩沖區(qū), 啟動執(zhí)行命令,RTL8019AS 自動發(fā)送。一般在RAM 內(nèi)開辟2 個以太網(wǎng)數(shù)據(jù)包的空間作為發(fā)送緩沖區(qū)。作為一個集成的以太網(wǎng)芯片,數(shù)據(jù)的發(fā)送校驗,總線數(shù)據(jù)包的碰撞檢測與避免是由芯片自己完成的。只需要配置發(fā)送數(shù)據(jù)的物理層地址、源地址、目的地址、數(shù)據(jù)包類型以及發(fā)送的數(shù)據(jù)就可以了。
(4)接收數(shù)據(jù)包
它是完成數(shù)據(jù)接收任務(wù),RTL8019AS 接收到以太網(wǎng)數(shù)據(jù)包后自動將其存在接收緩沖區(qū)并發(fā)出中斷信號,S3C44BOX在中斷程序里通過D M A 就可接收到數(shù)據(jù),即通過遠(yuǎn)端D M A把數(shù)據(jù)從RTL8019AS 的RAM 空間,讀回ARM 中處理。這里主要是對一些相關(guān)的寄存器進(jìn)行操作。RTL8019AS 芯片具有性價比高,連接方便等特點(diǎn),是進(jìn)行嵌入式以太網(wǎng)設(shè)計時的首選的控制芯片。本文介紹了以S3C44BOX 處理器為核心,用RTL8019AS 作為網(wǎng)絡(luò)接口芯片的嵌入式以太網(wǎng)接口的具體軟硬件方法。產(chǎn)品的性能高,價格適中,不僅可用于工業(yè)現(xiàn)場實現(xiàn)現(xiàn)場節(jié)點(diǎn)的自動上網(wǎng)功能,而且可以用于信息家電的以太網(wǎng)接口,可以實現(xiàn)遠(yuǎn)程控制,在網(wǎng)上就可以控制家中的電器,具有很好的發(fā)展前景。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論