S3C4510B uClinux空调系统远程控制设计与实现

2010-09-25 05:55陈国明
通信技术 2010年3期
关键词:网络接口物理层网卡

陈国明, 夏 冬

0 引言

随着网络技术的发展,人们的生活方式发生了深刻的变化,消费者的需求更趋于人性化,现代化,网络产品的概念随之产生,利用网络实现对空调的远程遥控成为可能。网络空调的用户可以通过在网络中的电脑,手机来遥控家里的空调,实现对于空调的智能化控制。为实现对于空调的智能化改造,将空调的控制部分利用嵌入式微处理器 S3C4510B来实现,通过S3C4510B的I/O口外接继电器来实现对于空调的开通和关断。

网络空调,顾名思义就是可以通过互联网络来实现对空调的远程监控。也就是说,网络空调的用户可以通过一个控制器实现在任何联网的电脑和手机登录互联网来遥控家里的空调,包括开机、关机等。

本文基于嵌入式技术,设计了一个可以用于空调开通与关断的控制器,实现对于空调的远程控制。随着嵌入式技术的发展,ARM嵌入式处理器[1]以其高性能、低功耗、集成式RISC内核等特点得到日益广泛的应用。本文设计的控制器CPU使用ARM7系列的S3C4510B,使用uClinux操作系统来实现网络通信等系统功能。

1 系统总体设计

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]。

2 S3C4510B简介

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接口,支持软件开发,硬件调试;

3 控制器网络接口电路硬件设计

3.1 网络接口电路硬件设计方案

以太网接口电路主要由 MAC控制器和物理层接口 PHY(Physical Layer)两大部分构成。在微处理器基础上实现网络接口设计有以下两种方案:

方案一 若嵌入式处理器没有通用的网络接口,则只能把以太网芯片连接到嵌入式处理器的总线上,既采用嵌入式处理器+网卡芯片的方法扩展以太网接口。这种方案适用于S3C2410B等ARM9系列没有网络接口的微处理器;

方案二 利用嵌入式处理器本身提供的以太网接口芯片实现网络接口通信[5]。

由于 S3C4510B内嵌了一个以太网控制器,因此,本文选用方案二设计网络通信接口。

3.2 网络接口电路设计

由于 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。

4 uClinux下的网络通信实现

4.1 uClinux环境下的socket编程

uClinux系统中的网络socket数据传输[6]是一种特殊的I/O,socket具有类似文件的函数调用,随后的连接建立、数据传输等操作都是通过该函数实现的。在uClinux中进行socket编程,编程流程如图2所示。

图2 socket编程流程

4.2 uClinux下的网络通信实现

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),从硬件读出的数据放置在申请的好的缓冲区中,并判断接收到的桢的协议类型。

5 结语

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.

猜你喜欢
网络接口物理层网卡
基于K-ML-MPWFRFT的物理层安全传输技术
部署Linux虚拟机出现的网络故障
公路联网电子不停车收费系统路侧单元物理层自动测试软件研发
Server 2016网卡组合模式
双冗余网络接口自动切换测试模块的设计与实现
浅析CTC与GSM-R系统网络接口及路由配置改进措施
多天线物理层安全传输系统性能分析
挑战Killer网卡Realtek网游专用Dragon网卡
网络设置管理
卫星通信物理层安全技术探析