基于S3C44B0X的无线家庭网关设计

发布者:耿高良最新更新时间:2012-11-05 来源: 21ic 关键字:ARM  Clinux  无线家庭网关  S3C44B0X 手机看文章 扫描二维码
随时随地手机看文章
       引言

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

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

       系统的硬件设计

       系统结构及工作原理


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

图1 家庭网关系统结构图

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

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

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

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

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

       硬件电路组成

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

       以S3C44B0X为核心的基本硬件平台基本系统的硬件框图如图2所示,各部分

的功能与接口电路分析如下。

 图2 家庭网关基本硬件平台框图

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

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

       SDRAM接口电路:嵌入式操作系统的存在需要有一定量的动态RAM,解压缩后的操作系统将从Flash搬移至SDRAM,驻留内存;同时,用户堆栈、运行数据也都会放在SDRAM中。S3C44B0X芯片提供的8K缓存远远不能满足要求。考虑到实际应用的需求,设计中选择了三星的K4S281632D,它的数据宽度是16 位,由4 个Bank 组成,存储容量为16 MB。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的终端控制器相连。

       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调试)、复位电路和电源电路。

       其他功能模块蓝牙模块:在本方案中,蓝牙硬件芯片采用爱立信公司的ROK 101008 模块。家庭网关采用在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所示。

图3 Internet 远程控制程序流图

       结语

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

上一篇:基于S3C44B0X的无线家庭网关设计
下一篇:基于ARM内核的手持设备SoC

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

如何在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基础:ARM 伪指令详解
/ 4.1 ARM汇编器所支持的伪指令 在ARM汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令,他们所完成的操作称为伪操作。伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成。 在ARM的汇编程序中,有如下几种伪指令:符号定义伪指令、数据定义伪指令、汇编控制伪指令、宏指令以及其他伪指令。 4.1.1 符号定义(Symbol Definition)伪指令 符号定义伪指令用于定义ARM汇编程序中的变量、对变量赋值以及定义寄存器的别名等操作。常见的符号定义伪指令有如下几种: 用
[单片机]
ARM处理器异常处理的返回地址分析
ARM 处理器一共有7 种类型的异常,按优先级从高到低排列如下: Reset Data Abort FIQ IRQ Prefetch Abort SWI Undefined instruction 当任何一个异常发生并得到响应时,ARM内核自动完成以下动作: 1、拷贝CPSR到SPSR_ mode 2、设置适当的CPSR位: 改变处理器状态进入ARM状态; 改变处理器模式进入相应的异常模式; 设置中断禁止位禁止相应中断。 3、更新LR_ mode 4、设置PC到相应的异常向量 当一个异常处理返回时,一共有3 件事情需要处理:通用寄存器的恢复、状态寄存器的恢复以及PC 指针的恢复。 通用寄存器的恢复采用一般的堆栈操作指令,
[单片机]
<font color='red'>ARM</font>处理器异常处理的返回地址分析
Keil(MDK-ARM)系列教程(六)_Configuration(Ⅱ)
Ⅰ、写在前面 本文接着上一篇文章“Configuration(Ⅰ)”进行讲述Configuration后面三项Shortcut Keys快捷键、Text Completion代码完形、Other其他的内容。 Shortcut Keys快捷键:Keil软件里面所有快捷键都可以在Configuration配置中查看的到,也可以自定义快捷键。 Text Completion代码完形:包含代码自动完成、代码模板、语法错误检测等。 Other其他:这个选项不常用,包含UVSOCK (TCP/IP)设置、打开软件设置等。 阅读本文之前建议先阅读上一篇文章: Keil(MDK-ARM)系列教程(五)_Configuratio
[单片机]
Keil(MDK-<font color='red'>ARM</font>)系列教程(六)_Configuration(Ⅱ)
展讯获ARM实体IP授权 开发28nm芯片
ARM(ARMH-US)近日与晶片厂展讯(SPRD-US)共同宣布,展讯取得ARM POP处理器优化套件IP在内的完整ARM Artisan实体IP技术授权,此后展讯将能就ARM所支援的广泛IC代工选择以及多样化的28奈米制程,开发出最富有弹性的制造方案。 ARM指出,在这项授权协议之下,展讯可使用ARM Artisan标准单元、新一代记忆体编译器及针对ARM Cortex处理器与Mali图形处理器的POP处理器优化套件IP,ARM Artisan实体IP及POP IP将为展讯低功耗手机系统单晶片(SoC)的加速开发奠定基础。 ARM表示,透过提供针对28奈米制程的完整实体IP平台,ARM能协助客户发展更多元化的应用如
[嵌入式]
基于ARM和μC/OS-Ⅱ的嵌入式USB主机设计与应用
1 引 言 通常情况下,打印机、海量存储等设备是由普通PC机来驱动的,由于大量的测控、医疗等系统需要存储、打印数据,因此开发这类设备的嵌入式驱动是非常有实用价值的。目前,各种嵌入式设备基本上是通过软盘存储,并口打印的,而它们的存储容量、数据传输速度已大大落后当前各类嵌入式系统的需求。因此,开发基于USB接口的嵌入式海量存储设备和打印机驱动已成当务之急。 USB(Universal Serial Bus)是最近几年逐步在PC领域广为应用的新型串行接口技术,它通用性好、实时性强、传输方式多样、成本低、易于扩展和使用,这些优点使它受到许多硬件厂商的青睐,各种类型的USB设备产品大量涌入市场。USB通讯必须是主机和外设通讯,每次通讯都
[单片机]
基于<font color='red'>ARM</font>和μC/OS-Ⅱ的嵌入式USB主机设计与应用
ARM核颠覆MCU传统模式 升级换代不受内核困扰
嵌入式系统的出现彻底改变了整个电子技术行业,在全球范围内形成了从高校教育和科学研究、电子元件生产厂和电子产品生产厂全方位产业链。因MCU的市场容量大,MCU厂家为了获得更多的市场份额,不断地加大MCU的开发力度,自Intel在1980年发布MCU标志性产品MCS-51开始,到现在的30多年中出现了近100种MCU内核,涉及MCU型号超过3000种。在世界电子元件史上,除了MCU外,还没有一种功能相近,涉及型号如此之多的电子元件,自MCU一出世就进入了战火纷飞的战国时代。但ARM核的出现使MCU领域产生了巨大的变革。 天下一统 ARM核MCU性能价格优势明显 ARM7TDMI模式的出现,使嵌入式系统开发逐渐统一到相同MCU内
[单片机]
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)
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

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