简化可编程器件上的软硬件协同设计
一分日元 2022-11-09

  采用嵌入式CPU内核的可编程器件为应对各种设计挑战提供了有效途径,而这些挑战仅仅通过软件或硬件的方法可谓举步维艰,或者说解决成本非常高昂。这些器件结合了能再编程的数字与模拟硬件资源,能提供您切实所需的功能。此外,设计工具能消除与通常相关的大多数复杂性问题。例如,赛普拉斯半导体公司推出的PSoC Creator就是专为简化上述工作而精心设计的。借助PSoCCreator,用户不必一定要有完美的,仅需提供相关的设计元素即可,有点像在白板上绘画的感觉。随后,该工具能提供外设模块(即组件)的最佳布局和布线方案,并设置所需的时钟和电源配置,进而为用户优化设计。

  下面以采用PSoCCreator进行设计为例,给出了如何在无需软件工程师而成为硬件专家的情况下协助开展软/硬件协同设计。作为一款混合信号器件,PSoC包含集成型数模转换器(DAC),可用于将电压(或电流)输出到引脚或器件的其它部分。大家可将两个组件拖放到原理图上,并通过线路将其连接在一起,从而实现将DAC连接到引脚上。仅需几秒钟即能对组件进行定位,并将其复制到原理图上。

  请注意,DAC没有“输入”,也就是既没有电源线路和Vref输入,也没有繁杂得可怕的总线接口问题,有的只是一个可连线至引脚的统一供电电压源。另外,引脚同样也非常简单。事实上,PSoC引脚能通过各种驱动模式支持令人炫目的GPIO、SIO和模拟功能组合,此外还提供启用和同步等特性。但是,我们在此使用的模拟引脚已针对您的需求将物理引脚配置就绪,因而无需担心如何在不影响DAC信号的情况下安全地关闭有关特性。

  让设计人员与潜在混乱的低层实现细节相隔离,这一理念是PSoCCreator设计方案的核心,能帮助设计人员将精力集中在功能设计上。该工具可提供经全面验证的一整套200个组件,其中包括模数转换器(ADC)、DAC和放大器;UART与I2C以及PWM和定时器等,这些与传统原理图捕获工具中的原始IP模块相比,拥有高得多的易用性。在这些组件中,我们将实现细节进行了抽象化,而且设计项目能够确保第一次就无差错。用户可在参数编辑器(即定制器对话框)中选择功能,而工具则决定实现用户要求所需的器件配置。大家所要做的就是,将组件放到页面上,并双击进行定制器选择即可。

  下面以UART为例进行说明。这通常是以固件为导向的组件,因而定制器提供的配置选项非常便于工程师开展工作。您要做的不是考虑时钟输入和过采样速率,而是直接考虑需要什么样的波特率,这样工具就能自动创建可为组件提供相应频率的时钟源。

  为什么不是所有工具都能采用这种工作原理?作为器件的制造商,我们已经知道如何才能解决这些问题了。为什么要迫使用户来做这些设计工作?设计选择应作为选项提供,而不是成为设计障碍。以硬件为核心的设计方法过于低级别,工程师不值得在这上面耗费精力。可编程SoC用户需要比传统工具更高级的设计。在PSoCCreator中,用户可逻辑布局所需的功能,并用工具将此转换为特定的器件配置。用户可直接通过参数来设置外设行为。

  带集成型CPU的可编程器件需要获得也集成了软硬件开发任务的工具的支持。以硅芯片为核心的工具的另一个原有问题就是,软件工程师通常不得不使用他们不太喜欢的工具,而且还必须应对原始存储器和寄存器级外设接口等问题。换言之,没有正确的软件工具,可编程SoC只能让硬件设计人员受益,而软件开发团队则比较“倒霉”。在硬件方面,不但工作进展会大幅加速,而且风险也会降到最低,尤其是跟ASIC流程相比更是如此,但确保设计有效实现的压力却被转嫁给了软件开发团队。

  此外,PSoCCreator还能将工程师从开发自己的SoC功能接口工作中解放出来,让他们能选择集成开发环境(IDE)来进行应用开发。几乎所有的组件都有软件接口(LUT、逻辑门和多路复用器等低级组件例外),这就使得通过C语言代码来驱动外设变得非常简便。我们并非意在提供一系列存储器映射的寄存器再加上晦涩难懂的比特位字段和通常无文档记录的负面效应,而是在C语言API调用中让组件绑定典型功能。要启动定时器运行,用户可调用Timer_1_Start()等API。(您不必猜测如何停止。)通过使用Timer_1_ReadCounter()的返回值即可读取定时器的当前值。一旦熟悉了API的这种风格,您通常就能猜出从未使用过的组件的API名称。如果您没猜对,那么始终可以参考定制器对话框中完整的数据表或右键点击组件查询。

  您或许已经注意到以上API示例中的“_1_”。它提示了API在工具中的生成方式。您拖放(或拷贝粘贴)到设计中的每个组件都具有唯一的名称。该名称默认为组件的基础名称,如“UART”,而“_n”作为后缀说明这是相同组件的多个实例之一。用户能根据需求在定制器对话框中更改名称。在上面的例子中,我删除了下划线部分,因为项目中只有一个UART,因而加上这个数字是多余的。如果您按下“创建”按钮或F6键,那么工具会为原理图中的所有组件生成API文件。组件实例名称始终是附在所生成的API上。

  一旦完成了硬件设计,固件开发就能获得内置调试器的支持。用户可通过常见的JTAG或SWG接口连接至目标器件。赛普拉斯开发套件包含板上调试芯片(当然也是另一个PSoC),其取代了传统的调试器探询。用户连接上USB线缆就能启动调试工作。用户针对自己的硬件,可以购买比较便宜的MiniProg3调试器探针,以连接到标准的10引脚报头上。

  所有组件API都可作为C语言中的源代码提供,从而使调试软硬件互动变得非常简单。构造中不包含库,因而用户无需查询Web页面来查找设备驱动程序(似乎总有针对其它器件的)。对于断点放置和调试过程中的代码步进也没有限制。用户在调试组件行为时几乎不需要切换到汇编器视图。

  赛普拉斯认识到,不是所有软件工程师都希望或能够转为采用PSoCCreator环境。多年来,独立的软件IDE厂商一直在完善工具,同时他们还能提供可加速设计周期、降低风险以及扩大测试覆盖面的众多高端特性。ARMLtd的开发套件(MDK)和IARSystems的嵌入式工作台(EmbeddedWorkbench)工具等,都是这些工具中一些非常好的例子。

  当前的开发工作往往划分为软件和硬件团队。软件团队不见得在同一办公地点工作,甚至不见得在同一个国家工作,他们当然不希望工具选择完全由硬件团队决定。这不仅仅是个人偏好的问题。公司为工具、调试解决方案、维护合同等投入大量时间和资金,这是工程开发流程中规划最完善的组成部分,而且在来源控制和文档管理等公司系统中实现了高度集成。转而采用新的软件开发环境往往是不实际的。

  在此环境下,较好的方案是将PSoCCreator作为“芯片配置”工具来使用,而不是取代原有的IDE。硬件工程师可使用此工具生成设计以及所有的配置数据和API。软件团队仅需将这些文件集成到其现有的IDE中,并继续按照熟悉的编辑—构建—调试周期进行工作。硬件团队可自行使用PSoCCreator来构建针对其设计和设计所用的测试台。您甚至能创建可与软件团队共享的电路板支持套件(BSP)或硬件抽象层(HAL),从而简化与器件的互动机制,尽可能避免错误。在“芯片配置”中需要使用多少软件,完全由您来决定。

  把全新的交给软件工程师来处理往往会产生很多问题。这些问题肯定是要发生的,也是整个产品开发过程中最容易产生误解和挫折感的地方。我们都听说过抑或是经历过这样的情况,有人说“问题是硬件带的”,而有人则坚称“不,问题来自软件”。这种意见分歧的根源往往就在于在如何使用硬件方面沟通不畅。为了解决这个问题,PSoCCreator提供了可生成PSoC设计数据表的功能。器件配置信息、时钟设置、引脚选择和所有已生成组件API的描述都直接从工具输出到统一的数据表文件中。文档由机器生成,因此不存在剪切粘贴错误或某个信息被遗漏的风险。

  这只是PSoCCreator功能和如何在现有设计流程中使用它的一个简单概览。我们认为,其针对采用嵌入式CPU的可编程器件的设计问题采用了独特的基本方法。此外,它还是一款完全免费的工具。

  多年来,嵌入式工程师一直都需要为每一个项目做出明确的方案选择。或许可以为定制IC进行大量投入以确保能够完美满足用户的需求,但这需要好几个月的时间,而且一旦设计变成了芯片就无法改变。此外,您也可以直接采用FPGA开始设计,这样做具有非常大的灵活性而且设计发生变动时也可以快速完成,但在单位成本或功耗方面的竞争力却差强人意。当然,在两种情况下,用户仍然不得不选择、采购和集成CPU,但至少ARM在内核领域的强大竞争力已使这一选择非常简单了。但是,您是否需要购买内核并将其设计到您的器件中呢?

  如今已出现一条中间道路,赛普拉斯的PSoC等器件横空出世,具有令人振奋的功能特性,似乎能在各个领域全面实现最佳的性能效果。这种基于ARMCortexM的可编程器件具备各种CPU选项、速度和功能,无需集成IP,也不必担心总线接口或开发启动代码。此外,硬件完全可编程,因而能实现类似于ASIC的性能和功耗,同时具有非常强大的价格竞争优势,并且能立即获得可满足量产需求且在产品出货之前随时可以修改(再编程)的器件。最出色的地方还在于,这种产品拥有强大的片上模拟功能,如模数转换器、比较器和放大器等,这些是在FPGA产品中所缺失的。如此说来,将定制化和耗电量高的FPGA大规模迁移到这种新型设计上还有什么障碍呢?

  答案非常简单,障碍来自于软件方面。为了充分发挥器件的作用,工程师需要软件工具来集成软硬件技术,同时又不能把项目的所有人都限制在单一的单片式IDE中。

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • FPGA
  • 可编程
  • PLC
  • verilog
  • FPGA设计的接口模块

    作为FPGA工程师来说,碰到新的问题是设计中最常见的事情了,技术发展趋势日新月异,所以经常会有新的概念,新的需求,新的设计等待去实现。不是每个通过BAIDU或者

    02-02
  • Xilinx FPGA支持MIPI接口的两种方式

    MIPI分为CSI(Camarasensorinterface)与DSI(Displayinterface)电气特性1.lowpowermodel0-1.2V单

    01-11
  • 详解DSP和FPGA在汽车电子中的广泛应用

      20世纪末,全球范围内兴起的信息革命浪潮,为汽车工业的突破性发展提供了千载难逢的机遇,信息技术的广泛应用是解决汽车带来的诸如交通拥挤、交通安全、环境污染、能

    01-11
  • 基于FPGA自适应数字频率计的设计

    在电子工程,资源勘探,仪器仪表等相关应用中,频率计是工程技术人员必不可少的测量工具。频率测量也是电子测量技术中最基本最常见的测量之一。不少物理量的测量,如转速、

    2022-12-28
  • 基于Verilog语言的等精度频率计设计

    引言传统测量频率的方法主要有直接测量法、分频测量法、测周法等,这些方法往往只适用于测量一段频率,当被测信号的频率发生变化时,测量的精度就会下降。本文提出一种基于

    2022-12-28
  • 基于fpga的多轴控制器用于多路电机运动

    介绍了一种基于fpga的多轴控制器,控制器主要由arm7(LPC2214)和fpga(EP2C5T144C8)及其外围电路组成,用于同时控制多路电机的运动。利用

    2022-12-23
  • 采样点测试

    CAN总线广泛应用于汽车电子、轨道交通、医疗电子等领域,保障CAN节点间稳定通信变得尤其重要。本文将介绍如何利用CAN采样点测试方案,有效提高CAN网络通信成功率。   为什么要进行采样点测试? 为了保证有效的通信,对于一个只有两个节点的CAN网络,其两边距

    2022-12-07
  • 如何解决FPGA无法启动的问题

    我将现场可编程门阵列(FPGA)连接到我的DC/DC转换器的输出,现在DC/DC无法启动。当使用示波器观察电路时,我看到图1所示的情形。输出电压未进入调压模式。

    2022-11-29
  • μC/OS-III中的高效时钟节拍管理机制

    引言在嵌入式实时操作系统(RTOS)中,任务可通过调用延时函数(比如μC/OS中的OSTimeDly()函数)将自己延时挂起一段时间。任务在延时的过程中会释放C

    2022-11-21
  • VXI总线任意数字信号发生器的设计与实现

       VXI总线是VMEbus eXtensions for Instrumentation 的缩写。VXI主机箱有13个插槽,其中,零槽控制器为系统的管理者。VXI模块根据其本身的性质、特点和所支持的通信规程可以分为寄存器基、消息基、存储器和扩展模块四种类型。每个模块的地址空间有A16、A16/A24和A16/A32三种类型。  VXI总线测试平台是仪器测量领域的前沿技术,可以灵活地组建自动测试...

    2022-11-15
下载排行榜
更多
广告