当前位置:首页 > 嵌入式 > 嵌入式硬件

引 言

电子记帐控税终端机属于高度安全和可靠的产品,关系到信息安全和金融安全,长期使用国外的核心器件将给国家安全带来严重隐患。拥有自主知识产权的嵌入式处理器、专用芯片及其嵌入式操作系统已成为振兴我国电子行业的当务之急。

目前国家正在大力发展金税工程,本文作者参与了针对电子记帐控税终端机设计的片上系统(System on Chip,SoC)芯片的研究。

2 总体方案

本SoC芯片是面向电子记帐终端设备而设计的符合国家电子记帐终端设备标准的高性能嵌入式的系统芯片,其中以32位的SPARC V8架构的处理器为内核,集成了符合ISO7816标准的智能卡控制器和符合ISO7811/2标准的磁卡控制器接口等外围设备。他的应用既降低了电子记帐终端设备的成本,又大大提高了系统的可靠性。

2.1 SoC的结构

本SoC芯片内部采用可裁减的总线式结构,选用ARM公司的AMBA总线作为SoC内部总线,总线上各个模块采用统一的接口方式和总线连接,从而实现了模块开发的标准化,降低了开发的工作量。本SoC芯片的结构如图1所示。

本SoC采用"Harvard"结构,地址总线和数据总线分开,分别连接到独立的"cache"控制器上。指令cache和数据cache均为直接映射cache,配置各为4 kB;各部分的功能简述如下:

(1)32位整型数处理单元(Integer Unit,IU)支持SPARC V8指令集。IU的主要功能是执行整数运算、计算要访问的存储器的地址,另外他也支持指令计数器和控制指令的执行。

IU具有以下特点:

①5级单一指令流水;

②单独的指令cache和数据cache;

③标准的8个寄存器窗口;

④硬件乘法、除法器;

⑤带40位累加器的16×16位MAC;

(2)浮点运算单元(Floating Point Unit,FPU)提供遵循SPARC V8标准的全部浮点指令,其浮点数据的格式和浮点指令遵循ANSI/IEEE 754-1985标准,FPU连接在IU上。FPU有32个32 b的浮点寄存器。芯片使用标准的LD/ST指令在FPU和存储器之间移动数据。存储器地址由IU计算,浮点操作指令完成浮点算术运算。

内部的AMBA总线包括2种总线:AHB和APB。APB总线用来访问片内外设的寄存器;AHB总线用作高速数据传输。AHB总线连接处理器cache控制器和其他的高速单元,IU是总线上惟一的主控单元。AHB总线从属单元有:存储器控制器、AHB/APB转换桥等。AHB/APB转换桥作为一个从属设备连接在AHB总线上,是APB总线惟一的主控单元,处理器通过AHB/APB桥访问大部分片内外设。

(3)SoC的片上外设

智能卡控制器(Smartcard controller):符合ISO7816标准;

磁条卡控制(magnetic stripe card Controller):符合ISO7811/2标准;

通用输入输出接口(GPIO):共80个GPIO端口;

通用异步串口(UART):一个16550UART和3个普通UART;

中断控制器(Interrupt Controller):支持16个一级中断源,32个二级中断源;

定时器(Timer):5个24位的通用目的定时器;

看门狗(Watch Dog):24位看门狗定时器;

实时时钟(RTC):计算秒、分、小时、天、月、年,具有润月补偿功能,计时可至2100年,通过后备电源使实时时钟工作在低功率模式;

PS/2控制器(PS/2 I/F):符合PS/2标准,支持第一套和第二套扫描码集;

I2C控制器(I2C I/F):兼容Phillips公司的I2C标准;

SPI控制器(SPI I/F):兼容SPI和Microwire/Plus两个企业标准。

2.2 SoC芯片的设计要点

在SoC的体系架构、逻辑设计和电路设计中采用正向设计方法;

建立深亚微米自顶向下设计流程,实现硬/软件协同仿真、设计、验证技术,建立芯片正向设计平台;

低功耗设计技术,包括对RTC及SRAM的低功耗优化设计;

采用深亚微米(0.18μm)必须解决的设计问题,包括。EMI,CrOSS talk,天线效应和热电子效应等;

采用现代SoC设计技术,实现片上外设包括IC卡、磁卡、I2C、SPI、PS/2等功能接口的高度集成设计和测试;

高可靠、实时多任务处理平台技术,支持嵌入式操作系统及其任务调度管理;

支持ANSIC的标准应用,实现底层驱动软件的模块化、标准化设计。

同时,针对以上技术挑战必须实现如下技术创新:

该项目为自主知识产权的内嵌32位RISC处理器以及大量功能接口模块的SoC设计,突破嵌入式SoC的高度集成、高可靠、低功耗、实时多任务处理等关键技术;

建立自顶向下的深亚微米设计流程,实现硬、软件协同设计、仿真、综合、验证技术;采用大容量FPGA和嵌入式操作系的统功能验证平台;应用样机对SoC进行全面验证,确保了该项目的技术路线实施及产品的实际应用;

支持多任务实时嵌入式操作系统。

3 功能验证

在集成电路的设计过程中,需要进行大量的验证工作,SoC功能验证采用专门的开发软件把设计模型转换成相应的配置文件,下载到硬件平台的FPGA或CPLD芯片中,在实际的应用系统中来验证SoC功能的正确性。

在对本SoC进行硬件平台验证过程中,采用的FPGA综合工具是Synplicity公司的Synplify Pro 7.7,FPGA布线工具选用的是Xilinx公司的ISE 5.0,硬件平台的核心FPGA芯片选用的是Xilinx公司的Virtex II系列的XC2V2000。验证流程如图2所示[1-3]。

3.1 验证平台的设计

本SoC芯片内部采用AMBA总线,内嵌32 b整数处理单元,优化的32/64 b浮点数处理单元,并且内嵌了大量的外设,主要包括:80位GPIO口、4路UART控制器、5个24 b定时器、看门狗、.PS/2控制器、I2C总线控制器、SPI总线控制器、1个三磁道磁卡控制器,3个智能卡控制器等。为了完整地测试本SoC的所有功能,硬件测试平台如图3所示,包含下列基本组成部分:

FPGA芯片;配置PROM;程序BPROM;SRAM;串口转换芯片;I2C总线设备;SPI总线设备;磁卡读卡器接口;智能卡及卡座;GPIO测试点;PS/2设备;系统时钟发生设备;上电复位电路;电源。

3.2 FPGA平台验证结果

将由SoC的RTL模型产生的FPGA下载文件(*.bit文件)下载到FPGA中,在Unix环境下,用SPARC-GCC编译器编译测试程序(标准C程序),然后观察程序运行结果,就可以验证整个SoC系统或某一模块功能的正确性。

下面以获取智能卡复位应答(Answer To Reset,ATR)字节为例,阐述此过程。

事先知道待测智能卡的ATR字节为:3b,7a,18,0,0,21,8,11,12,13,14,15,16,17,18。

测试结果为:

Smartcard controller testing…

ATR over,and ATR characters:

3b,7a,18,0,0,21,8,11,12,13,14,15,16,17,18

以上结果说明,智能卡控制器可以接收到卡的复位应答字节,SoC的此功能正确。采用同样的方法及过程可以验证其他功能的正确性。

4结 语

该SoC芯片如今已经成功应用到了多种电子记帐终端设备中,为国内外的电子记帐终端设备制造商们提供了一种高性价比的选择,为"中国芯"家族又增添了一位新成员。所以,可以认为该SoC芯片的设计还是非常成功的。

设计中存在的主要问题就是内置的RAM空间还不够大,对于高端的电子记帐终端设备,必须外扩一定容量的RAM存储器,希望在下一款同类芯片设计中加以改进。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用

嵌入式开发是一种专门针对特定硬件平台设计和实现软件系统的工程实践,它涵盖了从需求分析、系统设计、编程实现、调试测试直到产品部署及维护的全过程。本文将深入探讨嵌入式开发的主要阶段,分解其流程并阐述每个步骤的关键要点,以便于...

关键字: 嵌入式开发 嵌入式软件
关闭
关闭