陳國明, 夏 冬
隨著網絡技術的發展,人們的生活方式發生了深刻的變化,消費者的需求更趨于人性化,現代化,網絡產品的概念隨之產生,利用網絡實現對空調的遠程遙控成為可能。網絡空調的用戶可以通過在網絡中的電腦,手機來遙控家里的空調,實現對于空調的智能化控制。為實現對于空調的智能化改造,將空調的控制部分利用嵌入式微處理器 S3C4510B來實現,通過S3C4510B的I/O口外接繼電器來實現對于空調的開通和關斷。
網絡空調,顧名思義就是可以通過互聯網絡來實現對空調的遠程監控。也就是說,網絡空調的用戶可以通過一個控制器實現在任何聯網的電腦和手機登錄互聯網來遙控家里的空調,包括開機、關機等。
本文基于嵌入式技術,設計了一個可以用于空調開通與關斷的控制器,實現對于空調的遠程控制。隨著嵌入式技術的發展,ARM嵌入式處理器[1]以其高性能、低功耗、集成式RISC內核等特點得到日益廣泛的應用。本文設計的控制器CPU使用ARM7系列的S3C4510B,使用uClinux操作系統來實現網絡通信等系統功能。
S3C4510B是三星公司針對網絡應用開發的一款性價比很高的ARM內核16位/32位RISC嵌入式微處理器。它內含一個由ARM公司設計的高性能、低功耗的ARM7TDMI內核,內置常用的10~100 Mb/s Ethernet控制器等一系列網絡通信控制器,特別適用于對價格和功耗比較敏感的嵌入式系統的網絡應用。系統總體設計如下頁圖1所示。

圖1 系統總體設計
uClinux操作系統是針對通信和控制領域開發的嵌入式操作系統,其主要優勢在于開放的源代碼、穩定,強大的網絡通信功能以及其安全性和精簡性。uClinux內核與 linux操作系統[2]基本相同,只是對內存管理和進程管理進行了修改,主要應用于S3C4510B等沒有MMU的微處理器。同時,uClinux對ARM處理器有很好的支持,容易移植。
控制器通過網絡接口[3]接入網絡,用戶可以通過互聯網實現與控制器的通信。繼電器的控制信號與S3C4510B的I/O口相連,空調的開關與控制器的繼電器相連,通過控制S3C4510B的I/O口就可以實現對空調的開通與關斷[4]。
S3C4510B是基于ARM7TDMI內核,三級流水指令的16位/32位RISC處理器,提供了一套比較完整的通用系統的外圍設備,并且使得整個系統消耗最小。芯片上集成的功能包括以下幾個方面:
① 3.3 V ARM內核和3.3 V外部I/O,具有50 MHz時鐘頻率的微處理器;
② 8 KB的Cache/SRAM;
③ LCD控制器;
④ 一個10M~100 Mb/s工作速率的以太網控制器,MII接口;
⑤ 2個HDLC通道,每個通道可支持10 Mb/s;
⑥ 2個UART通道,2個DMA通道,2個32位定時/計數器;⑦ 1通道IIC接口,18個可編程I/O口;⑧ 中斷控制器,支持21個中斷源,包括4個外部中斷;⑨ 支持SDRAM、SRAM、FLASH和外部I/O以8/16/32位的方式操作;
⑩ 具有擴展外部總線,JTAG接口,支持軟件開發,硬件調試;
以太網接口電路主要由 MAC控制器和物理層接口 PHY(Physical Layer)兩大部分構成。在微處理器基礎上實現網絡接口設計有以下兩種方案:
方案一 若嵌入式處理器沒有通用的網絡接口,則只能把以太網芯片連接到嵌入式處理器的總線上,既采用嵌入式處理器+網卡芯片的方法擴展以太網接口。這種方案適用于S3C2410B等ARM9系列沒有網絡接口的微處理器;
方案二 利用嵌入式處理器本身提供的以太網接口芯片實現網絡接口通信[5]。
由于 S3C4510B內嵌了一個以太網控制器,因此,本文選用方案二設計網絡通信接口。
由于 S3C4510B內嵌了一個以太網控制器,同時支持媒體獨立接口和帶緩沖DMA 接口,可在半雙工或全雙工模式下提供10M~100Mb/s工作速率的以太網接入。
S3C4510B的以太網控制器特性如下:
① 帶猝發模式的DMA引擎,DMA發送/接收緩沖區(256字節發送,256字節接收);
② MAC發送/接收FIFO緩沖區(80字節發送,16字節接收);
③ 數據對準邏輯;
④ 10M~100 Mb/s的工作速率;
⑤ 與IEEE802.3標準完全兼容;
⑥ 提供MII和7線制10 Mb/s接口;
⑦ 片內CAM;
⑧ 帶暫停特性的全雙工模式;
⑨ 支持長/段包模式。
同時,在半雙工模式下,以太網控制器支持CSMA/CD協議,在全雙工的模式下支持IEEE802.3 MAC控制層協議。因此,S3C4510B內部實際上已經包含了以太網MAC控制,但并未提供物理層接口,因此,只需外接一片物理層芯片以提供以太網的接入通道。
常用的10M~100 Mb/s高速以太網物理層接口器件主要有RTL8201、DM9161、AC101等,均提供MII接口和傳統的7線制網絡接口,可方便的與 S3C4510B接口。以太網物理層接口器件主要功能包括:物理編碼子層、物理媒體附件、雙絞線物理媒體子層、10BASE-TX編碼/解碼器和雙絞線媒體訪問單元等。
本設計采用 DM9161作為以太網的物理層接口。DM9161是一款低功耗、高性能的芯片,支持10M~100 Mb/s工作速率的以太網傳輸,它起到編碼和譯碼輸入和輸出數據的作用。
由于S3C4510B片內已經有帶MII接口的MAC控制器,而DM9161也提供了MII接口,各信號的定義也很明確,因此,DM9161與S3C4510B的連接時序銜接,可以達到很好的網絡信號傳遞。信號發送和接收端通過網絡隔離變壓器和RJ45接口接入網絡。
網絡隔離變壓器主要用于聯系網卡芯片與RJ-45接口。網絡隔離變壓器的主要作用是用于傳輸數據,它把物理層接口(PHY)傳送出來的差分信號用差模耦合線圈進行耦合濾波以增強信號,同時,隔離不同網絡設備間的不同電平,以防止不同電壓通過網絡傳輸損壞設備。此外,網絡隔離變壓器還具有阻抗匹配、波形修復、雜波抑制以及高電壓隔離等功能,對設備有一定的保護作用。
常用的網絡隔離變壓器有 E2023NL、HR601680、H1102等。本設計選用的網絡隔離變壓器為 pulse公司生產的H1102。
uClinux系統中的網絡socket數據傳輸[6]是一種特殊的I/O,socket具有類似文件的函數調用,隨后的連接建立、數據傳輸等操作都是通過該函數實現的。在uClinux中進行socket編程,編程流程如圖2所示。

圖2 socket編程流程
uClinux下的網絡通信實現包括以太網卡初始化、數據接收和數據發送[7]三個部分。
初始化必須有一個初始化程序,驅動程序載入系統的時候會調用這個初始化程序。主要完成功能有:檢測設備、配置和初始化硬件、初始化結構中變量,使得硬件可以開始工作。同時,為了使網卡處于再線工作狀態,能夠接收和發送數據,必須對相關的寄存器進行初始化,包括 BDMATXCON、BDMARXCON等。
對以太網寄存器初始化并設置以太網物理地址,部分代碼如下:
int s3c4510b_eth_init(unsigned char *mac_addr)
{ int i;
outl(BRxRS,BDMARXCON);
outl(BTxRS,BDMATRXCON);
......
s3c4510b_eth_fd_init();
for(i=0;i<4;i++)
CAM_Reg(0)=(CAM_Reg(0)<<8)│mac_
add[i];
for(i=4;i<6;i++)
CAM_Reg(1)=(CAM_Reg(1)<<8)│mac_
add[i];
CAM_Reg(1)= (CAM_Reg(1)<<16);
......}
數據發送和接收:在網絡中,數據傳輸的過程是發送方將待發送的數據按楨格式要求封裝成楨,然后通過網卡將楨發送到網絡的傳輸線,接收程序接收楨并決定是否傳送到應用程序。發送過程包括幾下過程:得到 Tx楨描述符,封裝楨,發送,改變BDMA所有權,準備接收下一楨數據。
數據接收是指接收網絡上的數據楨并存儲在網卡的接收緩沖中,設備接收到數據后都會產生一個中斷,在中斷處理程序中驅動程序可以申請一塊緩沖skbuff(sk),從硬件讀出的數據放置在申請的好的緩沖區中,并判斷接收到的楨的協議類型。
uClinux操作系統及嵌入式技術在信息傳輸、網絡設備以及工業控制領域中均有著非常廣泛的應用。本文通過基于ARM 7 嵌入式微處理器 S3C4510B和嵌入式實時操作系統uClinux的網絡空調控制器應用方案的設計以及實現,拓展了嵌入式與uClinux應用領域。同時通過理論和實際的測試分析,該控制器硬件實現電路簡單、可靠性高、實用性以及穩定性強,具備良好的應用前景。
[1] 李駒光,聶雪媛,江澤明,等.ARM應用系統開發詳解——基于S3C4510B的系統設計[M].北京:清華大學出版社,2003.
[2] 王學龍.嵌入式 Linux系統設計與應用[M].北京:清華大學出版社,2001.
[3] 徐軍,王華東,劉軍.以太網卡控制器與ARM7的接口設計及編程[J].通信技術,2009,42(01):204-206.
[4] 潘曉嵐,楊斌,王海花,等.基于 S3C4510B的以太網驅動設計[J].計算機時代,2006(10):22-24.
[5] 常興,劉斌.基于ARM的無線通信系統軟硬件接口設計研究[J].北京郵電大學學報,2004(12):157-160.
[6] 楊健,張慧慧.基于 S3C4510B uClinux實現網絡化數據采集和傳輸[J].儀器儀表學報,2005(08):323-325.
[7] 徐功偉,戴學豐,劉樹東,等.嵌入式以太網控制器設計[J].通信技術,2009,42(05):191-192,195.