当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]一种C55x DSP的串行引导与程序加密方法

摘要 以TI公司的TMS320VC5509A和SST公司的SST25LF080A为例,介绍了一种通过串口模式对Flash中的程序进行二次加载和加密方法。文中还给出了相关硬件连接、自举表的建立。实验证明,采用该引导装载系统具有较强的实用性,可以提高DSP软件的保密性。
关键词 TMS320VC5509A;SST25LF080A;串行引导

    随着数字信号处理技术的发展,数字信号处理器(DSP)以其卓越的性能、独有的特点,成为通信、计算机、消费类电了产品等领域的基础器件,被广泛地应用于各种数字信号处理系统中。由于数字信号处理器(DSP)内部的ROM需要在生产时写入程序,所以多数场合下,系统加电后,DSP需要将一段存储在外部非易失性存储器的代码转移到内部高速存储器单元中执行,这样既利用了外部的存储单元扩展了DSP本身有限的ROM资源,又充分发挥了DSP内部资源的效能。目前Flash存储器应用最为广泛,其兼有存取快速、电可擦除、可在线编程、大容量、低功耗、小尺寸、以及价格低廉等优点,已成为新一代数字信号处理系统中的重要组成部分。但是,由于外部Flash存储器中的内容易被他人读取,因此在利用DSP进行产品设计时,如何保护自己的成果,防止被窃取盗用,成为了设计工作的重要方面。本文基于TI公司的TMS320VC550 9A实现一种加解密体制,利用加密算法来保护DSP程序。

1 TMS320VC5509A的自举引导
1.1 TMS320VC5509A介绍及其Bootloader
    TMS320VC5509A是TI公司推出的一款高性能DSP,最高工作在可以200 MHz主频,IO供电电压3.3 V;核电压1.2~1.6V。支持DMA操作、支持多媒体卡(MultiMedia Card,MMC)、安全数字卡(signal data converter,SDC)的读写;集成了USB控制器、I2C总线控制器、MCBSP口、实时时钟RTC,以及多路A/D转换器;具有PGE和BGA两种封装形式。片内具有64 Byte ROM和128 Byte高速静态RAM,内部只读ROM中固化了引导加载程序(Bootloader),该程序在系统上电或复位后可以将用户代码自动搬移到片内RAM运行。
1.2 自举加载模式选择
    TMS320VC5509A每次上电复位后,在执行完一系列初始化(配置堆栈寄存器、关闭中断、程序临时入口、符号扩展、兼容性配置)工作后,根据预先配置的自举模式,通过固化在ROM内的Bootloader程序进行程序引导。引导模式选择是根据4个引脚BOOTM[0:3]配置完成的。BOOTM 0~3引脚分别与GPIO 1、2、3、0相连。BOOTM[0:3]在实际的电路连接是将芯片引脚通过上拉或下拉电阻接地或接电源来实现。系统中采用Flash存储器完成串行引导,只需将BOOTM[3:0]设置成0100即可。
1.3 TMS320VC5509A引导表
    Bootloader允许应用代码存放在慢速非易失性的外部存储器中,再将代码搬移到高速的片内存储器中执行。应用代码以一种Bootloader能够理解的特殊格式编码,这种格式就是自举加载表。Bootloader在引导程序时,程序代码是以自举加载表形式加载。自举加载表包含了将要搬移的代码段、程序段,以及这些段将要被搬移到的地址、加载完成后程序要执行的地址f即程序入口地址和其他配置信息。TMS320VC55x系列DSP的自举加载表结构如表1所示。


    其中,程序入口地址是自举加载表加载结束后,用户程序开始执行的地址;待配置寄存器数目决定了后面有多少个寄存器需要配置;只有当延时标志为OxFFFF时,延时才被执行;延时长度决定了在寄存器配置后,延时多少个CPU周期才进行下一个动作:段长度、段起始地址和数据则为用户程序中定义的各个段的内容,并且可以重复添加;最后以32个0作为引导表的结束标志。若需要生成引导表,可用CCS最终编译生成的.out文件,通过CCS自带的hex55.exe转换程序得到。
[!--empirenews.page--]
2 自举和加解密实现
2.1 硬件设计
    SST25LF080A是SST公司生产的SPI串口8 MbitFlash,支持SPI的Mode0和Mode1方式,其可靠性高,最大时钟频率为33 MHz,供电电压为3.3 V,可重复写10万次以上。采用8脚SOIC封装形式,与TMS320VC5509A的硬件连接如图1所示。


2.2 二次引导技术
    DSP本身所带的Bootloader不能实现加密功能,因此对于Flash里的程序无法起到保护作用。所以在Bootloader的基础上,还需要进行二次引导,即通过DSP内部ROM同化Bootloader,首先引导另一个引导程序,该程序是由用户自行编写,功能与ROM固化的Bootloader类似,但增加了对程序代码加解密和校验等功能,并在加载结束后,把PC值置于实际程序的入口地址,使程序转至实际程序。
2.3 程序加密与解密
    对程序的初始保护,即把最终运行的程序代码写入Flash芯片之前,对代码进行加密处理。过程如下,DSP的一次引导过程只加载储存在SST25LF080A中的加解密程序,需要向Flash写入时,读取DSP自身的ID号作为密钥,通过一定的加密算法将二次引导的程序进行加密处理后再写入,这样,SST25LF080A中就不存在明文形式的代码。
    DSP的一次引导过程只加载储存在SST25LF080A中的加解密程序,二次引导则加载SST25LF080A中已经加密的代码,然后读取DSP自身的ID号作为密钥进行解密,加载结束和完成解密后再继续运行。
    为防止破译者直接修改读取ID部分的引导代码,改为使用固定ID,还必须基于数据驱动进行连续二次保护。它的处理对象是一些重要参数或变量,通过读取引导程序的校验值和DSP本身ID,完成对这些参数或变量“加锁”,让它们以密文形式存在于程序中。这样即使完成了对引导程序的简单破译,也无法使程序正常运行。


    经过处理,可以有效地避免通过读取Flash内容直接破译,或者直接读取Flash内容后在不同产品中反复利用的做法,对保护知识产权有着重要的意义。对于DSP代码加密,可以根据需要的加密复杂程度进行算法选择,实现框图如图2所示。

3 结束语
    针对TMS320VC5509A和SST25LF080A,使用串行方式实现程序自举引导的二次引导加载,提出基于该方式的程序加密方法。该方法不仅可用于TMS320VC5509ADSP中,其他类似高速微处理器系统的引导加载方案中也可得到应用,实现了灵活的程序加载。

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

利用数控机床进行机测时可以通过机床本体与测头来完成。

关键字: DSP 数控机床

数字信号处理器(DSP)在通信、控制、图像处理等多个领域扮演着越来越重要的角色。TMS320F2808PZA作为德州仪器(Texas Instruments)推出的一款高性能DSP控制器,其独特的架构和强大的功能使其在众...

关键字: tms320f2808pza 数字信号处理器 DSP

从世界上第一颗DSP诞生至今30年来,国际一线老牌芯片厂商长期占据领先技术和市场地位,国内芯片厂商在DSP上的声量很小。然而经过了6年的沉心打磨之后,湖南进芯电子开始在这一领域崭露头角。凭借着更贴近中国本土特色的差异化产...

关键字: DSP MCU 电机控制 进芯电子

今天,小编将在这篇文章中为大家带来数字信号处理器DSP的有关报道,通过阅读这篇文章,大家可以对它具备清晰的认识,主要内容如下。

关键字: DSP 数字信号处理器

DSP的国产替代不会是一件很容易的事情,但受到当前国际竞争态势的影响,本土开发者亟需拥有降本优势、供应链安全保证,以及能协助打造极高竞争力产品的DSP芯片。也就是说,发展国产DSP是不二选择。

关键字: DSP

将DSP和单片机构成双CPU处理器平台,可以充分利用DSP对大容量数据和复杂算法的处理能力,以及单片机接口的控制能力。而DSP与单片机之间快速正确的通信是构建双CPU处理器的关键问题。

关键字: 单片机 spi通信 DSP

随着科技的不断发展,微控制器(MCU)和数字信号处理器(DSP)已经成为了电子行业中不可或缺的重要组成部分。它们在各种电子设备中发挥着关键作用,如智能手机、平板电脑、家用电器等。然而,尽管它们都是用于处理数字信号的集成电...

关键字: MCU DSP 数字信号处理器 微控制器

随着环境保护和能源可持续性的日益关注,电动汽车作为一种清洁、高效的交通工具逐渐成为全球汽车行业的热点。与传统的内燃机驱动汽车相比,电动汽车具有零排放、低噪音和高能量利用效率等显著优势。

关键字: DSP 芯片 混合动力汽车

在平常的日常生活中,噪声总是不可避免的。每个人承受噪声的能力也不尽相同,喜欢安静的人需要一些降噪措施,降噪耳机应运而生,甚至都能算得上是城市生活的必备品了

关键字: 主动降噪 DSP ANC

北京2023年9月22日 /美通社/ -- 华为全联接大会2023期间,华为举办了"昇思MindSpore AI框架:引领大模型&科学智能原生创新"主题论坛,软通动力数字化创新服务线高级副总裁...

关键字: DSP AI 模型 开源
关闭
关闭