基于s3c2440的ip可视电话的设计与实现内容摘要:

适当配置内核,包括处理器、文件系统和设备驱动模块等的设置,如图 所示。 15 图 Linux 内核配置界面 2) 内核编译 笔者使用的内核版本是 , makefile 功能已经足够智能,只需要简单执行 make 命令就可以生成内核的 zImage 文件和可加载驱动模块。 3) 内核下载 内核下载即是将内核映像文件烧写到目标板的 NAND Flash 上,内核下载的前提是已经在目标板上写入了 Bootloader 程序,通过运行 Bootloader 的下载模式,将内核映像文件下载到 NAND Flash 中的特定的位置。 下载完成后即可通过 Bootloader 的启动加载模式运行刚下载的内核。 4. 根文件系统的制作 根文件系统是嵌入式 Linux 系统不可或缺的组件,用于存放可执行文件、系统配置文件、必要的链接库等文件。 1) 根文件系统的位置 当目标板上开始运行 Linux 之后,可以在串口超级终端中输 cat/proc/mtd 16 命令查看当前 Linux 内核所在的存储器的文件系统,命令执行结果如下: EmbedSky cat /proc/mtd dev: size erasesize name mtd0: 00020200 00020200 IPLSPL mtd1: 00400000 00020200 mtd2: 03b00000 00020200 mtd3: 0c0e0000 00020200 通过命令的执行结果可以看出该目标板的存储器上一共有四个分区, 分别为: (1) IPLSPL: IPLSPL 是 Freescale 开发的一种 Bootloader; (2) : Linux 内核; (3) :根文件系统; (4) :用户空间,可以存放其他数据。 显然,根文件系统位于第 3 个分区 mtd2,根文件系统制作完成后,通过BootLoader 的下载模式将其写入到 mtd2,即可被 Linux 内核挂载。 2) 根文件系统的制作过程 具体过程包括三个步骤: (1) 选择适当的根文件系统类型,常见的 Linux 文件系统类型有 Cramfs、JFFS RAMDISK、 EXT2 和 EXT3 等,需要根据具体的需求特点选择合适的文件系统,其中, JFFS2(The Journalling Flash File System version 2,日志型Flash 文件系统 )是一个应用非常广泛的日志结构的文件系统,提供垃圾回收机制,意外掉电后仍然可以保存数据的完整性,在嵌入式系统上得到了广泛的应用。 (2) 设置根文件系统的内容,首先,建立根文件系统对应的目录 rootfs,并在其下建立适当的子目录,由于嵌入式 Linux 系统一般是单用户系统,所以很多只对多用户系统才有意义的 Linux 系统子目录可以不放到根文件系统目录中,但有些子目录是必须的,包括 /bin、 /dev、 /etc、 /lib、 /proc、 /sbin、 /usr 这些内容。 然后,将适当的内容复制到各个子目录中, /lib 目录下要复制 glic 库文件; /dev 目录下要建立系统中所有的设备文件; /etc 目录下建立相关的系统启 17 动配置文件。 需要说明的是,由于在 /bin 和 /sbin 目录下存放的完整的 Linux 标准应用程序占用存储空间过大且很多命令在嵌入式 Linux 下很难用到,所以没有复制所有的命令文件到目录下,而是使用了 BusyBox 软件,该软件的原理是使用一个极小型应用程序来提供整个命令集的功能,而所有在 /bin 和 /sbin 目录下系统标准命令都将是一个链接到 BusyBox 的符号链接。 通过适当的配置并交叉编译 BusyBox 可以得到 BusyBox 的可执行文件以及一系列应用程序的符号链接。 (3) 使用特定制作工具制作特定类型的文件系统,例如要制作 JFFS2 文件系统, 可以使用 工具,将文件夹 rootfs 格式化为适合目标板存储器的 JFFS2 文件系统。 命令格式如下: – 配置参数 ./rootfs o 3) 修改内核启动参数 通过内核配置菜单 Boot options 选项修改内核启动参数为从 NAND Flash 第 3 个分区挂载根文件系统 ,修改后的内容如下: CONFIG_COMLINE= “ noinitrd console=ttymxc0,115200 root=/dev/mtdblock3 rw rootfstype=jffs2 mem128M” 18 第三章 S3C2440 的 IP 可视电话硬件设计 硬件是整个系统的物理基础,为软件的运行提供了平台。 硬件设计的第一步是芯片选型;然后则是基于该芯片的总体设计和详细设计,包括最小系统电路和外围接口电路的原理图设计;接下来完成电路板的布置和元件的焊接,实现了电路板的制作;最后通过检测电源、晶振和芯片引脚的电气特性以及运行测试软件的方法完成了硬件的测试。 硬件总体设计 ARM(Adnvaecd RISC Machine)公司成立于 1990 年,是一家芯片设计公司。 ARM 是知识产权 (PI)供应商,本身不生产芯片,主要是出售芯片设计的授权,由合作伙伴公司来生产各具特色的芯片。 目前,全世界有几十家著名的半导体公司使用 ARM 公司的授权,既使 ARM 技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场并被消费者所接受。 S3C2410X 微处理器时一款由 samsung 公司为手持设备设计的低功耗、高集成度的基于 ARM920T 核的微处理器,为了降低系统总成本和减少外围器件,这款芯片还集成了以下部件: 16KB 指令 Cache、 16KB 数据 Cache、 MMU、外部存储器控制器、 LCD 控制器、 NAND FLASH 控制器、 4个 DMA 通道、 3 个 UART 通道、 1个IIC 总线控制器、 1个 IIS总线控制器、 4 个 PWM 定时器、 1个内部定时器、通用IO 口、实时时钟、 8 通道 10 位 ADC 和触摸屏接口、 USB 主、 USB 从、 SD/MMC 卡接口等,现在它广泛应用于 PDA、移动通信、路由器、工业控制等领域,其内部结构如图所示。 19 图 ARM 内部结构 S3C2410X 处理器体系结构 ( 1) ARM920T 核, 16 位 /32 位 RISC 结构和 ARM 精简指令集; ( 2) ARM MMU,支持 Windows CE、 Linux、 VxWork、 UCOSII 精简指令集; ( 3) 指令 Cache、数据 Cache、写缓冲; ( 4) 支持 ARM 调试结构,片上 ICE 支持 JTAG 调试方式; ( 5) 内置先进微控制器总线接口 AMBA。 S3C2410X 处理器系统管理 ( 1) 支持大端( Big Endian) /小端( Little Endian)模式; ( 2) 8 个内存块: 6个用于 ROM、 SRAM 及其他, 2 个用于 ROM/SRAM/SDRAM; ( 3) 地址空间:每个内存块 128MB(共 1GB), 每个内存支持 8/16/32 位数据总线编程; ( 4) 1 个起始地址和大小可编程的内存块( Bank7); ( 5) 7 个起始地址固定的内存块( Bank0- Bank6); 20 ( 6) 所有内存块可编程寻址周期; ( 7) 支持 SDRAM 自动刷新模式; ( 8) 支持多种类型 ROM 启动,包括 NOR/NAND Flash、 EEPROM 等。 基于 S3C2440 芯片的外围接口,设计了可视 IP 电话终端的硬件系统总体结构图,如图 所示,包括如下几个部分: (1) USB 读取 CMOS 摄像头图像帧, I2C 控制摄 像头工作,实现视频采集功能。 (2) 音频口读取语音编解码芯片的语音数据,实现语音的采集和播放。 (3) SDRAM 控制器外接用于存放运行的程序和数据的 SDRAM 存储器芯片。 (4) NAND FLASH 控制器外接 NAND Flash 芯片,一般用作系统的外部存储器, 存放 Bootloader、内核映像和文件系统。 (5) LCD 接口连接 LCD 显示器,用于视频的显示。 (6) 以太网接口 FEC 外接以太网物理层芯片,完成音视频数据的网络传输。 (7) UART 接口通过 RS232 收发器连接 PC 宿主机, PC 宿主机通过超级终端控制 着目标板上程序的运行。 (8) 时钟和电源接口连接外部晶振和电源,构成了芯片工作的支撑电路。 21 图 IP可视电话硬件总体架构 硬件详细设计 硬件平台详细设计包括 2440 最小系统电路和相关的外围模块电路的设计,外围电路主要包括摄像头采集电路、 LCD 接口电路、语音采集和播放电路、以太网接口电路和 UART 接口电路。 下面将分成几个小节分别加以阐述。 1. 电源电路 2440 及其外围模块需要 电源供电,其中 5V 电源直接由外部供电系统提供,而其它电源 则由相应转换芯片来实现,转换电路如下 : IN3G1OUT2V C C4U 9 0 4 L M 1 1 1 7 3 . 3C 9 1 01 0 0 u F / 6 VC 9 1 11 0 0 u F / 6 VVDD5C 9 1 2104V D D L C D 图 电源电路 22 2. 晶振电路 2440 内部集成模块较多,不同的模块需要不同的时钟频率,故需要外接两个大小分别为 和 12M 的外部晶体作为系统的时钟源,分别用于外设接口模块和 CPU 核。 电路图如所示,图中 Y1 和 Y2 分别为对应的 2 个外部晶振,XTAL32K 和 EXTAL12M 分别为两个时钟源的输出引脚。 X T Ir t cX T Or t cX112MX T OpllX T IpllC422PC122PC322PC222PX2 图 晶振电路 3. 复位电路 2440 需要稳定和精确的复位信号,故通过外接 MAX8115 复位芯片提供准确的 电压、 100uA 静态电流、 200ms 时间延迟的复位信号。 复位电路如图所示, MAX708TCSA 的 5 脚 IO_PWREN 为芯片的使能信号,输出为 8 脚 RST 信号,其余引脚构成了芯片工作的支撑电路。 RST 连接到 AO3402 增强型场效应管上,当开关 S2 按下后, RST 输出高电平, AO3402 导通,导致 RST_IN 被拉低,芯片复位,否则 RST_IN 一直处于高电平。 V D D 33S 301R E S E TR 30310KnR E S E TR E S E TnM R1V C C2P F I4NC6R S T8nR S T7nP F O5GND3U 301S P 708S ( S O 8)V D D 33S 302R E S E T 图 复位电路 23 4. JTAG 调试接口 JTAG(Joint Test Action Group,联合测试行动小组 )是一种主要用于芯片内部测试的国际标准测试协议,兼容 [40],现在大多数的微处理器都支持 JTAG 协议。 JTAG 基本原理是在器件内部定义一个 TAP(Test Access Port,测试访问端口 ),通过专用的 JTAG 测试工具对进行内部进行测试。 现在, JTAG 接口还常用于实现 ISP(InSystem Programmer,在线编程 ),对 FLASH 等器件进行编程。 标准的 JTAG 接口引脚定义如下: (1) TCK—— 测试时钟输入; (2) TDI—— 测试数据输入,数据通过 TDI 输入 JTAG; (3) TDO—— 测试数据输出,数据通过 TDO 从 JTAG 输出; (4) TMS—— 测试模式选择, TMS 用来设置 JTAG 处于某种特定的测试模式; (5) 可选引脚 TRST—— 测试复位,输入引脚,低电平有效。 2440 的 JTAG 控制器模块用于内部 ARM920T 内核的调试,兼容 标准的。 基于 2440 的 JTAG 调试电路如图 所示。 和 TDO 引脚对应了 JTAG 标准的 5 个引脚, RTCK 和 RESETINB 分别用于时。 钟反馈和外部复位,暂时不使用,用于将来 的系统扩展。 2468101214135791113151617181920C O N 3 0 1J T A G amp。 W I G G L EnT R S TT D IT M ST C KT D OnR E S E TR 3 0 1 1KR 3 0 21KR P 3 0 1 1。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。