自制廉价的Arm9 开发平台

上传人:aa****6 文档编号:35522061 上传时间:2018-03-16 格式:PDF 页数:11 大小:562.99KB
返回 下载 相关 举报
自制廉价的Arm9 开发平台_第1页
第1页 / 共11页
自制廉价的Arm9 开发平台_第2页
第2页 / 共11页
自制廉价的Arm9 开发平台_第3页
第3页 / 共11页
自制廉价的Arm9 开发平台_第4页
第4页 / 共11页
自制廉价的Arm9 开发平台_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《自制廉价的Arm9 开发平台》由会员分享,可在线阅读,更多相关《自制廉价的Arm9 开发平台(11页珍藏版)》请在金锄头文库上搜索。

1、版权归原版权人所有,请勿用于商业用途! 自制廉价的 Arm9 开发平台 摘要:基于 Arm9 内核的单片机,由于其低廉的价格与优越的性能,已经被广泛的应用于各种消费类电子产品中。掌握 Arm9 单片机的开发技能已经成为嵌入式系统开发者的迫切要求。但由于市面上的 Arm9 开发板价格不菲,使不少想学习 Arm9 开发技术的朋友望而却步,其中有一大部分是各大高校的学生。本文阐述了改造 ipTIME 的 IP0422 路由器,使其成为 VxWorks 和 Linux 的 Arm9 开发平台的过程。整个过程简单易行,同时花费在 150 元以内,是嵌入式系统开发爱好者不错的选择。 1 改造系统改造系统改

2、造系统改造系统的选取的选取的选取的选取 要动手改造 Arm9 开发系统,首先要选取一款进行改造的产品。现在基于 Arm9 内核的单片机被广泛的应用于家用路由器和手机当中,因而这两类产品可以作为我们寻找改造对象的范围。但由于手机总体的价格偏高,同时集成度比较高,电路系统复杂,因而不适合作为我们改造的对象。而路由器恰恰相反,现在 100 多元的路由器比比皆是,而且这些路由器基本使用单芯片,该芯片除了具有 Arm9 核心的控制功能外,还具有硬件上的路由算法支持,因而电路相对简单,便于改造,所以廉价的路由器就是改造 Arm9 开发板的合适对象。经过反复比较以后,最终选择了 ipTIME 的 IP042

3、2。该款路由器的市场价格在 100 元左右,主芯片为 KS8695X,是高度集成化的网络通讯处理器,具有ARM922T 内核。同时该路由器还具有 2M Flash,8M SDRAM,同时还留有一个 SDRAM 焊位,可以方便的把 SDRAM 的容量扩充为 16M,为我们运行操作系统提供了足够的空间。选择该款路由器的另一个主要原因时 KS8695X 芯片提供了完备的开发资料,可以方便的从 Micrel公司的 FTP 上(ftp:/)下载获得(文中所涉及到的芯片相关资料都从该 FTP 下载)。开发资料中包括了供 KS8695X DEMO板运行的 Linux 操作系统的源代码和 VxWorks 系统

4、的 BSP 源代码包,虽然 KS8695X DEMO 与我们进行改造的路由器的硬件配置不同,但只要做少许移植工作,便可以让以上程序支持我们的开发板,大大简化了我们的改造过程。IP0422 路由器改造完成的电路板和电路板版本号如图 1 所示。以下将从硬件改造与软件 DEMO 移植两方面,详细阐述对 IP0422 的改造过程。 图 1 改造完成电路板与电路板版本号 2 硬件改造硬件改造硬件改造硬件改造 2.1 串口 串口对一个嵌入式系统是致关重要的,通过串口可以与嵌入式系统进行交互。我们首先进行系统的串口改造。如图 2 所示,电路板上原本就将串口以 4 星条针的形式引出,估计是为了以后方便维修而设

5、置的。经过分析发现,为了抗干扰,电路板上将主芯片串口的 RX 管脚进行了上拉,因而在一般使用中主芯片不会接收到任何的输入信号。所以我们对串口的改造分为两步:1、去掉 RX 管脚上的上拉电阻;2、自己搭建一个串口电平转换电路,使串口可以与 PC 机通信。串口各管脚定义与要去掉的电阻如图 2 所示。 版权归原版权人所有,请勿用于商业用途! 图 2 串口电路 串口电平转换电路负责单片机串口与 PC 机串口间电平的转换工作,使两者可以正常通信。串口电平转换电路使用最多的是 MAXIM 公司的产品,在这里可以使用 MAX3232 或 MAX232,两者连接的电路原理图是相同的。由于 MAX3232 是使

6、用 3.3V 进行供电的,所以可以直接与上图所示的 4 个管脚进行连接。若使用 MAX232 芯片,则要将芯片的供电管脚与电路板上输入电源 5V 相联。我使用的是 MAX232 芯片,5V 电源端的连接如图 3 所示。MAX232、MAX3232 连接原理图如图 4 所示: 图 3 MAX232 5V 连接端 版权归原版权人所有,请勿用于商业用途! 图 4 MAX232、MAX3232 连接原理图 由于以上接口电路比较简单,假如没有现成的串口电路板,可以直接购买面包板,在上面搭建,以后所说的接口电路也可用此方法构建,不再赘述。将相应的电路连接好后,与 PC 机的串口相连,打开串口工具 DNW(

7、超级终端也可以),设置波特率为 38400,数据位为 8,奇偶校验为无,停止位为 1,硬件流控制为 0(后面使用的串口设置只有波特率不同,其他设置都按此设置)。连接开发板的电源后,可以看到路由器启动时的提示信息,如图 5 所示,说明串口改造成功。 图 5 IP0422 启动串口输出 2.2 JTAG 接口 JTAG 接口是作为开发板必须具备的。我们可以通过 JTAG 接口对板上的程序进行简单的调试,同时,还可以通过 JTAG,将程序下载到板上的 SDRAM 中,对板上的 Flash 进行擦写操作。 对 JTAG 的改造要比串口困难,因为电路板上并没有为我们引出该接口,我们只有自己想办法做一个引

8、出接口。如图 6 所示,图示位置将电路板的绝缘层用小刀刮掉,露出里面的铜箔,将一个 2x10 的条形插针一面的 9 个脚焊在该铜箔上,形成接地,这与我们将要使用的 wiggle版权归原版权人所有,请勿用于商业用途! 简易 JTAG 接口是一致的,同时还可以起到固定整个插座的作用。条针的 2 脚与串口接口中的 3.3V 电源端相连,作为简易 JTAG 接口的电源脚。然后将芯片上的与 JTAG 相关的各个管脚引出。如图 6 所示,绿色线一端连条针的第 5 脚,一端连芯片 TDI 上拉电阻 R27 的一端;橙色线一端连条针的第 7 脚,一端连芯片 TMS 上接电阻 R28 的一端;蓝色线一端连条针的

9、第 9 脚,一端连芯片 TCK 上拉电阻 R29 的一端;白线一端连条针的第 13 脚,一端直接与芯片的 TDO(113 脚)相连。其中白色线与芯片的 TDO(113 脚)相连端是焊接的难点,由于芯片管脚太密,直接焊接很容易照成相邻管脚间的短路,所以建议将该管脚翘起来(如图 6 所示),然后再焊接,操作时要十分小心。 图 6 JTAG 接口与相应连线 版权归原版权人所有,请勿用于商业用途! 图 7 简易 JTAG 接口原理图 接口构造完成后, 可以使用wiggle的简易JTAG口与计算机的并口相连。 Wiggle的电路原理图如图7所示。 从http:/ H-JTAG 软件,进行安装后,启动 H

10、-JTAG 软件,应该可以检测到连接的芯片是 ARM922T 的内核。再使用 H-JTAG 配合 AXD调试软件对芯片的存储区域,寄存器进行读写,如读写正常,说明接口改造成功。在使用 AXD 时,可能会出现这样的现象,先连接 PC 机并口与板上的 JTAG 口,再给路由板上电,然后启动 AXD 时可能会报错。解决的方法是先给路由板上电,然后再将 JTAG 口插到 PC 机的并口上,最后再启动 AXD,可以解决以上问题。 2.3 扩充 SDRAM 路由板上的 SDRAM 只有 8MB,由于 Demo 板的 SDRAM 是 16MB,为了方便直接运行 Demo 板的 Linux 系统,需要为路由板

11、扩充 8M SDRAM。板上使用的 SDRAM 型号为 IC42S16400-7TG,在市场中并不常见,根据查看该型号 SDRAM 的规格书,我们选取与其兼容的HY57V641620HG 型号的 SDRAM。由于路由板上原来就留有另一片 SDRAM 的焊接位置,扩充比较容易,只需要在焊接时注意芯片的 1 脚的位置,不要将芯片焊反了。SDRAM 周围缺少的器件也都要焊上,排阻为 33 欧姆,电容使用 0.1uF。由于原来路由器中的程序会检测外围SDRAM 的数据宽度,进行 SDRAM 扩充后,原来程序将自动用 32 位数据宽度进行访问。所以在扩充 SDRAM 后,给路由板上电如串口输出正常(如图

12、 5 所示),则说明扩充成功。 经过以上步骤,路由板的硬件改造已经完成,接下来就是要编写,移植软件,使路由板成为 VxWorks 与 Linux 操作系统的开发平台。 3 软件编写软件编写软件编写软件编写 3.1 Flash 烧写软件 由于扩充了 JTAG 接口,我们可以自己编写一个程序,对板上的 Flash 进行擦写。具体原理是在路由板启动后,通过 AXD 中的命令行,设置 KS8695X 中的寄存器,将 Flash 与 SDRAM 映射到特定的区域,然后将擦写程序下载到 SDRAM 中运行,对板上的 Flash 进行编程。关于这方面文章网上已经有很多,同时还提供有源代码,在此就不再赘述。这

13、里只把要点说一下。由于 Arm9 芯片具有 MMU 单元,默认的路由板上的原始程序是 Linux,默认情况下会把 MMU 单元打开,使用数据缓存,所以我们在 AXD Command 窗口中执行内存区域配置时,要先把开着的 MMU 单元和数据缓存关闭,这样对 KS8695 寄存器的配置才会正确。对 MMU 中寄存器的设置如下图所示: 图 8 AXD 中 CP15 寄存器的设置 在 Command 窗口中键入命令 obey C:cfg.ini (假定自己编写的配置文件 cfg.ini 在 C 盘根目录下) , SDRAM 被映射到了 0x00xFFFFFF区域,Flash 被映射到了 0x2800

14、0000x29fffff 区域。将 Flash 烧写程序下到 0x0 处开始运行,将串口波特率设置为 115200,串口输出如图9 所示。按“1”键选择烧写 Flash,从 DNW 的“serial port”菜单中选 transmit,然后选择发送要烧录的文件就可以对 Flash 进行擦写了。我的路版权归原版权人所有,请勿用于商业用途! 由板上使用的 Flash 芯片型号为 Spansion 公司的 S29AL016D70, 不同型号的 Flash, 扇区分布与厂家 ID 可能不同, 擦写协议也有可能不同,要对相应部分的程序做适当的修改。 图 9 Flash 擦写程序串口输出 3.2 VxW

15、orks BSP 包的移植 Demo 程序自带 VxWorks 的 BSP 包。根据 Demo 板的 Datasheet1和 VxWorks 说明文档2中的说明,我们选择与这块路由板的配置基本相同的 KS8695X 构建目标进行改造。经过比较两者最大的差别就是在 Flash 部分,因而需要改写 BSP 包中与 Flash 接口的部分。其中包括 Flash 的初始化、擦写逻辑、程序在 Flash 中的布局,文件系统与 Flash 的接口等3。涉及到的主要文件与实现的功能如表 1 所示: 文件名 修改说明 Ks8695p.h、config.h 提供路由板相关寄存器设置值 flashFsLib.c

16、实现 FAT 文件系统接口 flashDrvLib.c 实现 Flash 操作接口 flashAmdMem.h、flashAmdMem.c 具体实现 S29AL016D70 的各种操作 flashMem.h、flashMem.c 提供程序在 Flash 中存储的位置和系统记录启动参数的接口 表 1 BSP 修改相关文件说明 将相关文件修改好后,根据 BSP 说明2中的方法编译 bootrom,选择的编译目标是 KS8695X。接下来根据说明中的方法编译适用于网络下载的 VxWorks 映象和适用于 Flash 引导的 VxWorks 映象,同样使用的编译目标是 KS8695X。将 bootrom 下载到路由板上,同时设置好FTP 服务器,设置串口波特率为 9600,默认情况下 bootrom 通过 FTP 从网络上下载引导启动 VxWorks 映象,启动过程如图 10 所示。也可版权归原版权人所有,请勿用于商业用途! 以修改 bootrom 中的启动参数, 从 Flash 的 FA

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号