综合题

家庭服务网关是智能家庭中的关键设备,是家庭内部智能设备与外部网络(如因特网)连接的桥梁„ 现需要设计的家庭 服务网关基本功能具体描述如下:
a、家庭服务网关具有一个以太网接口(对外连接),一个WiFi通信接口(对内连接),一个RS-485总线接口(对内连接)。
b、具备一个SD卡接 口 ,利用SD卡存储家庭服务网关的曰志信息。
c、具有三个状态指示灯,分别指示: "工 作 "、 "报 警 "、 "远程控制 "。
d、土具有实时曰历功能。
e、客户可以远程通过因特网控制家中智能设备。
根据上述功能要求的描述,若采用S3C2410芯片为核心来构建家庭服务网关的硬件平台,请完善下面的叙述(程序)和回答有关的问题。
(注意:完善程序或回答问题所需的寄存器格式见题后的附录)

 

【正确答案】

【81】以太网(网络、网络通信)
【82】 UART0(UARTI)
【83】 0x 10000000
【84】 GPE5(GPEI0)
【85】 GPEI0(GPE5)
【86】 0xFFFFFFDS
【87】 0x 0004
【88】 0xFFFB
【89】  0x0000A000
【90】 4
【91】 3
【92】 9600x 16(153600)
【93】 RTC(实时时钟)
【94】 0x01
【95】 0xFE(0x0E)
【96】 启动引导
【97】 根
【98】 Web
【99】 CGI
【100】 HTML

【答案解析】

本题实际上是考查基于S3C2 4 1 0的嵌入式系统开发综合。具体涉及到嵌入式最小硬件系统和典型系统;基于UART的外部 通信接口;外加以太网控制器的以太网接口连接设置:GPIO接LED的相关引脚驱动程序;UART的波特率设置;RTC控制 寄存器功能设置;嵌入式Web服务器环境的构建。

嵌入式最小硬件系统主要包括嵌入式处理器、时钟电路、电源电路、复位电路、存储器和调试测试接口。由于设计的星家庭服务网关,需要具有以太网接口,WiFi通信接口,RS-485接 口 ,SD卡接口及指示灯等,故除了最小硬件系统 外 ,还必须设计相应的以太网接口电路、WiFi模块接口电路、RS-485接口电路、SD卡接口电路和指示灯接口电路等。 S3C2410有三个UART接 15 , UART0 ~ UART2 , UART2接口与WiFi模块连接,则RS-485电平转换芯片可与UART0或 UARTI相连接。

AX88796是一款以太网控制器芯片,其片选信号cs引脚连到S3C2410芯片的nGCS2上 ,因此读/ 写AX88796芯片内部寄存器的地址范围是0x10000000〜 0x 100003FF ,即首地址是0x10000000。通过附录中端口E控制寄存器的格式可知 ,sD卡接口电路设计时,采用S3C2410芯片端口 E的引脚GPE5到GPE10。

GPE0 、GPE1和GPE2分 别 控 制 "工 作 ”、 "报警 "和 ”远程控制”三个LED指示灯 ,通过对GPECON的相应位设置进行初始化。6GPEO~GPE2日2对应的GPEON(:0叫立从 0到 5,三个口都输出驱动指示灯,故都置 01,即 0)<00000015,其它位 保持不变,故 【86】空填0x FFFFFFD5 ; 远程控制" LED灯亮即GPE2输 出 “1” ,故对GPE2口数据为1 ,其余位不变, 故 【87】空填0x0004 ; “远程控制" LED灯灭即GPE2输 出 “0” ,故对GPE2口数据为0 ,其余位不变,故 【88】空填 0xFFFB。

对应H端口的初始化将GPH6、GPH7 口置01 =输 出 ,其余位不变,故 【89】应填0x0000A0000 ; ULCON是UART线路控制寄存器,用于确定传输帧的格式,题中数据位数是8位 ,一位停止位,且是奇校验,参考附录中的ULCON寄存器 格 式 ,可知 【90】、 【91】空分別填4 ,3 ; UBRDIVn = INT(UCLK/(特率x 16))-1 ,此处UCLK是PCLK ,波特率是 9600 ,故 【92】空填9600 x 16或者153600。

所设计嵌入式系统中所需实现的实时曰历功能,可通过ARM芯片内部的RTC(实时时钟)部件来实现。实时时钟控 制寄存器RTCCON共4位 ,可确定是否允许RTC读 / 写 ,通过查看附录的RTC寄存器格式可知,读 / 写使能是RTCCON的第0位 ,0表示禁止,1表示允许,其余位不变,则 【94】空填0x01 ; 【95】空填0xFE或0x 0E。 

在完成硬件构件设计之后,软件构件的设计包括三部分:嵌入式Web服务器环境构建程序设计。在构建软件平台时,首先要移植系统启动引导程序(Bootloader)再移植Linux操作系统并建立其根文件系统,最后移植嵌入式Web服务器。网页设计时通常采用HTML语言来进行编程。