微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > SoC前段(ARM)嵌入式系统开发实作训练(上)

SoC前段(ARM)嵌入式系统开发实作训练(上)

时间:02-28 来源:3721RD 点击:

一个嵌入式系统的核心在于CPU,当CPU选定后,其他的问题就可慢慢就绪。SoC|0">SoC嵌入式系统的实现可把它分为:一应用型SoC嵌入式系统、开发型SoC嵌入式系统二种型态,这二种型态的软硬体开发有着不小的差异,但首先碰到的都是CPU的选定。这里笔者会针对它们的异同处做说明,再来描述ARM CPU、指令、系统管理、开发实作训练平台(PreSoCes)、Linux与程式等,以建立SoC嵌入式系统的整体轮廓概念,并在实作中培养、训练出开发技能与创新能力。

应用型SoC嵌入式系统是指在一个现成的SoC元件上加入软体(或OS),使成一系统;而开发型SoC嵌入式系统是指SoC元件还在建构中,它会选择仅适用的IP包入并做底层软体测试,以方便未来建立OS,而达成最有竞争力的组合。应用型SoC嵌入式系统所要面对的问题有:选用Turn-key(雏型半成品)方案或自己建构方案、CPU选择、OS选择,以及开发工具、ICE、Debugger、Compiler等的选择,每一种都彼此相关,因此要站在系统产品开发的角度来考量。

假如是选用Turn-key方案,那只要修改部分自己想要的软体即可,这种产品大都属于大量生产又具市场快速反应的特质。软体是系统产品功能的展现,系统大都会挂上一OS,因ARM CPU的设计就是为了放上OS而设计的,因CPU有好几种执行模式以方便task switch用。软体可分为BIOS、Kernel、Device driver、Application S/W等。

在Linux OS上就有Debug的功能,方便软体除错,对于Application软体来说是方便的,但碰上BIOS与Device driver就不足以应付了,就像早期产品开发一样,烧入程式再想想错在哪里,多么没有效率,因此如果有ICE与Debugger工具,那就更有效率了。

至于开发型SoC嵌入式系统大都是SoC IC设计公司的开发型态,SoC的内含是由市场需求而定位出,一个个IP元件再慢慢加上去,并验証之。但问题在于,纯软体的验証实在很难完全达到Co-design的100%验証,在没有更完美的解决之前,其他的方式就因应而生。也由于FPGA技术快速的进步,就把它拿来当成新加入IP功能验証的硬体元件,不仅如此,更方便软硬体整合Co-design的前段功能验証,IP的开发就多了一层保障。

在软体方面,BIOS、Device driver就紧紧地连接着硬体。在这时,当整个OS未建立起来时,就需要ICE与Debugger来帮助CPU驱动程式的除错,以验証程式执行对各IP元件驱动正常否。SoC IP的设计是另一门大学问,就不在此描述。在经过初步功能验証后,SoC IC就慢慢成型,方便日后产出后再加上OS。

在以上二种型态的SoC嵌入式系统中,它的重点不外乎是ARM CPU、OS、ICE和Debugger、FPGA、SoC。当然不一定要用ARM CPU,也可採用MIPS或其他的,只是目前全球CPU IP市场佔有率,还是非他莫属。以下笔者就针对这些重点做描述并在实作训练平台(PreSOCes)上展现各重点技术的开发与训练步骤。首先就针对PreSoCes作一简单描述,以方便各重点技术在实作说明时衔接起来。


PreSoCes
PreSoCes的实作功能有哪些?它是专门针对SoC嵌入式系统开发、训练而设计的平台,它是一个ICE(Pocket ARM ICE或Carrier ARM ICE)、Domingo Debugger、Creator组合而成。系统上特点:一、在WINDOWS环境就能操作Linux 系统,不需另灌一台Linux PC,也就是一台PC就能开发Embedded Linux。二、具有Linux OS Debugging的Debugger。Creator它的特点很多,但主要有(1).在Creator上,可更换CPU模组,如用不同的ARM CPU,或具ARM Core的FPGA模组,其他的MIPS CPU也是考虑之一。(2).在Creator上,可更换性的週边IP FPGA模组,如:Create Ph-FPGA-XC2S。(3).电流量测,可对CPU、Memory、LCD、Compact Flash、CMOS Sensor、USB、Ethernet等作量测。其他功能特点如下:

CPU:
˙ARM7TDMI S3C4510(Factory out standard)

CPU模组更换:(另选)
˙Create-ARM922T板(另选)、Altera EPXA1 100K Gates
˙ARM9 TDMI S3C2410 CPU板(另选)
˙其他CPU板(另选)
˙其他大容量FPGA 板(另选)

记忆体(Memory):
˙2MB Bytes Flash ROM
˙16M Bytes SDRAM support byte, half-word, word size
˙Access Compact flash card(compact flash card optional)
˙SDRAM Memory Expansion connector

通讯传输(Communication):
˙RS232C port for Debug Console
˙RS232 port for Application
˙RJ-45 10/100 Base-T Ethernet interface
˙USB 1.1 interface

人机界面(Human-Machine Interface):
˙Codec function with Speaker, Microphone circuit
˙CMOS Camera Module
˙4×4 Keypad
˙LED Lamp X 8;7-Seg LED X 4;8 Pin DIP Switch
˙Graphic LCD Display by 4 Level

系统支援(Board System):
˙1*system reset switch
˙1*JTAG connector
˙Real time clock by I2C interface
˙EEPROM 128×8 Bit
˙Clock changeable for CPU
˙可针对CPU、Memory、LCD、Compact Flash、CMOS sensor、Codec、USB、UART、EtherNet、etc作电流量测

週边IP FPGA模组更换:(另选)
˙Create Ph-FPGA-XC2S板(另选)
˙其他FPGA或CPCD模组(另选)

作业系统(Operating System):
˙Running uClinux
˙Others

ARM CPU
在初步了解PreSoCes功能后,就来看看嵌入式系统的核心ARM CPU,在这里以ARM Core S3C4510元件为说明。为何要学ARM CPU呢?因嵌入式系统是软、硬体的整合,它有BISO、Device driver,能不了解CPU吗?又加上如未来要走入SoC IP设计,那又更不能不了解它,所以笔者仅取重点说明。
■ARM7TDMI核心的主要组成
〈1〉.暂存器组(register bank):ARM7TDMI利用暂存器组来储存微处理器内部各种操作模式的运算域及CPU状态。暂存器组中的所有暂存器至少具有两个读取埠(read port)与一个写入埠(write port)以供存取暂存器之用,较为特殊是R15,有三个读取埠与两个写入埠。
〈2〉.桶型位移暂存器(barrel shifter):ARM7TDMI利用barrel shifter来执行位元位移或旋转,这是一般DSP常用的功能之一。
〈3〉.算术逻辑运算单位(ALU):ARM7TDMI利用ALU来执行算术与逻辑运算。
〈4〉.位址暂存器(address register)与累增器(incrementer):ARM7TDMI利用位址暂存器与累增器来选择并维持记忆体定址功能,以产生连续或非连续的记忆体位址。
〈5〉.资料暂存器(data register):ARM7TDMI使用资料暂存器来保存资料以与记忆体彼此沟通。
〈6〉.指令解码器(instruction decoder):ARM7TDMI利用指令解码器以产生与指令相对应的控制信号。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top