基于ARM-μClinux的无线家庭网关设计

发布者:柔情细语最新更新时间:2012-10-29 来源: 21ic 关键字:ARM  μClinux  无线家庭网关 手机看文章 扫描二维码
随时随地手机看文章

引言

随着网络技术和信息家电的飞速发展,越来越多的家庭要求建立家庭网络。家庭网关是整个家庭网络的核心,它主要实现Internet接入、远程控制,以及连接家庭内部的异构子网的功能。基于PC机方案的家庭网关不仅成本较高,而且要求计算机一直处于开关并可进行通信的状态,还不能在计算机上运行干扰通信任务的软件和硬件。所以,为适应普通用户,家庭网关应设计为基于廉价的非PC机设备。但是,若采用8位、16位单片机、由于速度慢且资源有限,实现TCP/IP协议比较困难,所以也不太理想。

因此本文以ARM核的32位嵌入式微处理器作为硬件平台,结合无线通信技术,通过移植嵌入式操作系统μClinux,并在其上开发相应的驱动程序,应用程序和嵌入式Web服务器,实现了一个方便、实用的家庭网关。

系统的硬件设计

系统结构及工作原理

家庭网关的系统结构如图1所示,它以三星公司的32位RISC处理器S3C44B0X为核心,通过外扩存储器(Flash/SDRAM),蓝牙模块、液晶显示屏、小键盘、以太网接口模块、电话语音控制模块和红外收发模块等来构建硬件平台,并可实现多种控制方式。


1)在本地用键盘及显示器进行控制:系统设有16按键和一块128×32点阵的液晶显示器,便于用户在本地进行状态的设置和查询,如数据查询、电器控制等。

2)在本地的红外遥控:通过具有自学习功能的红外遥控模块,能实现室内家电的红外遥控。

3)远程的电话语音控制:这是一种基于公共电话交换网(PSTN)的电话远程控制,用于电话的指令控制,如远程控制家电,电话报警等。

4)基于Internet的远程控制:采用浏览器端/服务器端结构(B/S结构),用户可直接用Windows自带的IE浏览器作为客户端程序,以达到随时随地进行远程控制的目的。

无线通信技术是实现家庭网络最理想的技术,它可以省去在家庭内部重新布线的麻烦。在本家庭网关的设计中,采用蓝牙模块作为无线通信模块与底层的各功能模块相互通讯。

硬件电路组成

本系统的硬件设计主要包括以S3C44B0X嵌入式微处理器为核心所搭建的基本硬件平台,以及蓝牙通信、电话语音控制和红外遥控等模块的硬件设计。

以S3C44B0X为核心的

基本硬件平台

基本系统的硬件框图如图2所示,各部分的功能与接口电路分析如下。


ARM微处理器S3C44B0X:S3C44B0X是三星公司生产的ARM7内核的SoC,通过在ARM7TDMI内容基础上扩展一系列完整的通用外围器件,令其很适合手持式设备和普通嵌入式的应用。

Flash存储器接口电路:Flash芯片用来存储家庭网关中的嵌入式操作系统、家庭网络服务器、CGI网络应用程序以及支持各种服务所需的文件系统。在系统中采用一片HY29LV160构建16位的Flash存储器系统,其存储容量为2MB,系统上电或复位后从此获取指令并开始执行,因此将Flash存储器配置到ROM/SRAM/FLASH Bank0。

SDRAM接口电路:嵌入式操作系统的存在需要有一定量的动态RAM,解压缩后的操作系统将从Flash搬移至SDRAM,驻留内存;同时,用户堆栈、运行数据也都会放在SDRAM中。S3C44B0X芯片提供的8K缓存远远不能满足要求。考虑到实际应用的需求,设计中选择了三星的K4S281632D,它的数据宽度是16位,由4个Bank组成,存储容量为16MB。S3C44B0X的Bank6和Bank7支持SDRAM,因此可以方便连接。在总线宽度控制寄存器BWSCON中设置Bank6的数据宽度为16位,在Bank6控制寄存器BANKCON6中设置MT=0x3,Trcd=0x0,SCAN=0x01,在存储容量寄存器BANKSIZE中设置BK76MAP=0x110即可。

10/100M以太网接口电路:S3C44B0X内部已包含了以太网MAC控制,但并未提供物理层接口,因此,需外接一片物理层芯片以提供以太网的接入通道。在本设计中选用的是RTL8201。由于S3C44B0X片内已有带MII接口的MAC控制器,而RTL8201也提供了MII接口,各种信号的定义也很明确,因此RTL8201与S3C44B0X的连接比较简单,在连接时只需将两块芯片的相应引脚互连即可。值得注意的是,使用CMOS工艺的RTL8201不能直接与RJ45接口相连,由于电平信号的不同以及网络冲击信号的存在,两者之间需要隔离及电平信号转换的元件,本设计中选用了网络变压器HR61H58L。

串行接口电路:为完成和家庭内部网络的蓝牙通信模块、红外发射与接收模块以及电话语音控制模块的通信,家庭网关需要有异步串行通信接口,由于S3C44B0X只有两个异步串口,因此需要对串口进行扩展。本设计中选用一片ST16C554芯片进行串口扩展。由于S3C44B0X系统的LVTTL电路所定义的高、低电平信号与RS-232-C标准所定义的高、低电平信号不同、两者间要进行通信必须经过信号电平的转换。在这里采用MAX202将串口数据信号转换成TTL电平,再通过ST16C554输出中断请求。4个串口的中断请求进行或运算,产生IRQ信号INTREQ经CPLD再与CPU的终端控制器相连。 [page]

IIC接口电路:S3C44B0X内含一个IIC总线主控器,可方便地与各种带有IIC接口的器件相连。在该系统中,外扩一片AT24C01作为IIC存储器。AT24C01提供128字节的EEPROM存储空间,可用于存放少量在系统掉电时需要保存的数据,比如家庭网关的参数设置和用户身份验证码等。

LCD显示模块:该模块可采用夏普公司生产的LM057QC1T01,它是图形点阵256色STN液晶模块,分频率为320×240。由于S3C44B0X和LM057QC1T01都具有很强的通用性,因此易于连接,但需要在控制器和LCD接口之间加装能实现电压偏转功能的电路,来实现输出LCD显示所需的27V偏转电压。

键盘接口电路:用8个通用I/O口组成4×4键盘。

S3C44B0X所需的其他外围电路:JTAG接口电路(用于JTAG调试)、复位电路和电源电路。

其他功能模块

蓝牙模块:在本方案中,蓝牙硬件芯片采用爱立信公司的ROK101008模块。家庭网关采用在μClinux操作系统下安装BlueZ以配合蓝牙模块,并基于L2CAP层建立相关协议的方式进行开发。

电话语音控制模块:采用双音频拨号芯片DTMF8870、语音合成芯片ISD1420、铃流检测芯片电路以及89C51等来组成电话语音控制模块。

红外遥控模块:系统中增加了红外接收模块和红外发射模块。红外接收模块选用BA5302,红外信号从其顶部输入,经济放大、整形、解调后,被转换成TTL电平的数字信号;红外发射模块将刚才学习到的红外原码进行调制并发送出去,去这里采用软件编码的方法产生调制信号,因此电路很简单。

系统的软件平台

建立μClinux开发环境

基于μClinux操作系统的应用开发环境一般是由目标系统硬件开发板(S3C44B0X的开发板)和宿主PC机所构成。目标板所用到的操作系统的内核编译、应用程序的开发和调试需要通过宿主PC机来完成。两者之间一般通过串口、并口或以太网接口来建立连接关系。

首先,要在宿主机上安装标准Linux操作系统,之后就可以建立交叉开发环境。从网上下载工具链,并将交叉编译器安装到宿主机上。还要根据家庭网关的需要重新配置、编译内核、进行μClinux移植。成功后可看到μClinux-Samsung/images目录下有两个内核文件:image.ram和image.rom。将image.rom烧写入ROM/SRAM/FLASH Bank0对应的Flash存储器中,当系统复位或上电时,内核会自解压到SDRAM,并开始运行。这样一个嵌入式应用开发平台就搭建成功了。

硬件驱动和应用程序的开发

硬件驱动和应用程序的开发也要在交叉编译环境中进行,先在PC机上开发,然后移植到目标机上进行调试并最终固化到目标机上。本设计中需要开发的硬件驱动有:以太网卡控制器、串口、LCD驱动、蓝牙模块、小键盘的驱动程序等。为Linux内核编写驱动并不像其他操作系统那么复杂,只需为相应的设备编写几个基本函数并向VFS注册即可,一般都是在一个现成的驱动程序基础上针对特殊的硬件设备作相应的改动。在嵌入式操作系统的基础上还要开发微型GUI,编写动态网页和CGI程序来实现嵌入式WEB技术、安全认证、及无线通信协议等。例如:基于Internet的远程控制是通过浏览家庭网关中的Web Server的动态网页实现的,远程控制程序需要从用户访问信息中解出有用的控制命令信息,然后按家庭控制网的内部协议组成令名帧,实现控制的关键是CGI程序的编制,其流程如图3所示。


结语

本文讨论了一个基于ARM微处理器S3C44B0X及μClinux的无线家庭网关的软硬件设计。该家庭网关控制方式多样,并且能随时随地通过浏览网页实现对家电的远程控制。该家庭网页成本较低,易于升级,便于推广应用。

参考文献:

[1]. RISC datasheet http://www.dzsc.com/datasheet/RISC_1189725.html.

关键字:ARM  μClinux  无线家庭网关 引用地址:基于ARM-μClinux的无线家庭网关设计

上一篇:一种MPEG4视频压缩和传输系统
下一篇:基于ARM的IEEE802.11bMAC层协议IP核设计

推荐阅读最新更新时间:2024-03-16 13:11

总结ARM会遇到的问题
1.ARM不是单片机,准确来讲ARM是一种处理器的IP核。英国ARM公司开发出处理器结构后向其他芯片厂商授权制造,芯片厂商可以根据自己的需要进行结构与功能的调整,因此实际中使用的ARM处理器有很多种类,主要有三星、飞利浦、ATMEL、INTEL制造的几大类,功能与使用上均不相同。ARM处理器核还可以嵌入其他专用芯片中作为中央处理单元使用,例如飞利浦的MP3解码芯片就是采用ARM7核心的。ARM系列处理器很少集成片上硬件资源,更接近今天的处理器范畴,基本不被认为是单片机。2.AVR单片机是ATMEL公司研制开发的一种新型单片机,它与51单片机、PIC单片机相比运行效率高很多、芯片内部的Flsah、EEPROM、SRAM容量较大、全部
[单片机]
ARM首席执行官Simon Segars加入软银集团董事会
电子网消息,ARM近日宣布,在6月21日于东京举行的软银集团第37届股东大会上,正式批准了关于ARM首席执行官Simon Segars加入软银集团董事会的任命。 软银集团在早前发布的官方声明中已经宣布了新董事会成员的候选人名单,以期加强公司治理及加速业务增长。Segars先生加入软银集团董事会是软银在2016年以320亿美元完成对ARM的历史性收购之后的重要任命。 Segars先生表示:“我非常荣幸能在这样一个令人振奋的创新的历史时刻加入软银集团董事会。ARM推动了移动计算从芯片到云端,横跨中间所有节点的变革, 同样地,我们正在通用平台上打造智能、互联的物联网世界,这也是软银愿景的核心所在。我非常期待与团队合作,推动这一愿
[半导体设计/制造]
软件标准化有望 ARM架构进军嵌入式应用添助力
在工业、交通、零售等产业应用领域,采用ARM处理器与Linux或Android操作系统的嵌入式装置,虽然在软硬件成本上有其优势,但由于其生态系统太过自由发散,因此在应用开发的过程中,常常会因为欠缺标准化而遇到许多麻烦,导致其成本优势被抵消殆尽。 有鉴于此,研华科技与安谋国际(ARM)、Canonical、Lineo、Retronix和Witekio等众多软硬件业者,日前携手成立嵌入式Linux/Android联盟(Embedded Linux Android Alliance, ELAA),将致力于在工业嵌入式市场推动开放、标准化的Linux和Android软硬件架构, 建立完善软硬件产业生态体系,协助物联网业者快速运用ARM处理
[单片机]
ARM MPCore --(1)
在ARM世界,MP Init目前没有一个统一的规范。(Andrew Fish said) 1. Barriers and Synchronization DSB -- Data Synchronization Barrier DMB -- Data Memory Barrier 2. Cluster Cortex-A15 MPCore,结合AMBA 4 ACE,支持多个coherent clusters. Cluster和CPU ID概念,与X86类似. 3. MPCore例子 使用Snoop Control Unit同步每個Core各自的L1 Data Cache
[单片机]
<font color='red'>ARM</font> MPCore --(1)
ARM汇编指令集之五——乘法指令与乘加指令
ARM微处理器支持的乘法指令与乘加指令共有6条,可分为运算结果为32位和运算结果为64位两类,与前面的数据处理指令不同,指令中的所有操作数、目的寄存器必须为通用寄存器,不能对操作数使用立即数或被移位的寄存器,同时,目的寄存器和操作数1必须是不同的寄存器。 乘法指令与乘加指令共有以下6条: 1、 MUL指令 MUL指令的格式为: MUL{条件}{S} 目的寄存器,操作数1,操作数2 MUL指令完成将操作数1与操作数2的乘法运算,并把结果放置到目的寄存器中,同时可以根据运算结果设置CPSR中相应的条件标志位。其中,操作数1和操作数2均为32位的有符号数或无符号数。 指令示例: MUL R0,R1,R2 ;R0 =
[单片机]
如何在ARM7-LPC2148中使用ADC
在电子世界中,市场上有多种模拟传感器用于测量温度、速度、位移、压力等。模拟传感器用于产生随时间不断变化的输出。这些来自模拟传感器的信号的值往往很小,从几微伏 (uV) 到几毫伏 (mV),因此需要某种形式的放大。为了在微控制器中使用这些模拟信号,我们需要将模拟信号转换为数字信号,因为微控制器只理解和处理数字信号。因此,大多数微控制器都有一个内置的重要功能,称为ADC(模数转换器)。我们的微控制器ARM7-LPC2148还具有 ADC 功能。 在本教程中,我们将了解如何在 ARM7-LPC2148 中使用 ADC,方法是向模拟引脚提供不同的电压,并在模数转换后将其显示在16x2 LCD 屏幕上。 什么是ADC? 如前所述,A
[单片机]
如何在<font color='red'>ARM</font>7-LPC2148中使用ADC
倍赛达让客户使基于Arm定制ASIC更加易于实现
BaySand, Inc. (倍赛达) 宣布:公司现在可提供采用Arm® Cortex®-M0和Cortex-M3处理器定制系统级芯片(SoC)的设计服务,并可通过Arm DesignStart ™ 计划 而无需预先支付处理器授权费用 。 原始设备制造商(Original Equipment Manufacturers)正越来越多地采用定制的系统级芯片(SoC,System-on-Chip),以创造更加小巧、更低成本、更低功耗和更具差异化的产品。BaySand (倍赛达) 提供基于DesignStart计划所包含处理器之设计服务,把进入门槛极大地降低,并使这些厂商能够从采用业界标准处理器以定制SoC中获益,而
[半导体设计/制造]
ARM与英特尔谁能领跑手机芯片市场
ARM与英特尔,能领跑手机芯片市场?毫无疑问,未来高端智能手持终端平台将主要是嵌入式X86架构与ARM架构的竞争,前者英特尔是主角,后者ARM为主角。这场比赛不仅包括两家公司芯片处理速度上的比赛,也包括两家公司在移动互联网生态环境营造速度上的比赛。 两家公司真正的交锋将从2008年二季度开始。虽然他们之间的口角战从去年开始就已打得热火朝天,但是在英特尔的Menlow平台(基于Silverthorne处理器)面市以前,他们之间的产品没有可比性。现在,英特尔已公开表示Menlow平台成熟,并已有终端厂商在CES上展示了基于该平台的MID样机。因此,比赛正式开始,Menlow平台对抗的是ARM Cortex A8。
[手机便携]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved