可编程器件固件开发的现代化方法
如果您是硬件设计人员,您一定觉得可编程器件很好用且功能强大。可如果您是软件开发人员,这些可编程器件一定会让您很头疼,因为您还得为这些器件编写固件,满足不断变化的目标需求。器件厂商通常在他们工具中集成软件开发特性,创建一个整体环境来支持软硬件两方面需求,从而解决这一问题。
这种解决方案的难点在于,它将使软件工程师不得不采用硬件设计人员使用的工具,而考虑到通常项目中软硬件设计人员比例严重失调,这种做法往往不够理想。有时采用一种工具没问题,但有经验且有成熟开发流程的分散的工程师团队来说不太适宜。工程师需要工具对思维进行逆向工程,并将硬件设计集成在现有第三方软件开发流程中,比方说赛普拉斯的 PSoC Creator 配合 ARM 的 μVision IDE。这种完美组合能满足两方面的需求,既能让硬件工程师集中精力进行芯片创新,又不会造成软件开发方面的瓶颈。
正如当今可编程器件的可编程能力和 CPU 性能大相径庭一样,可编程器件的设计团队的规模和成员也各有不同。虽然仍有不少成功的应用是由一个兼具软硬件专业技术的工程师实现的,但是在越来越多的情况下,产品设计是由角色分工相当明确的小团队完成的,也就是说硬件专家负责器件配置,只需编写一点软件来验证系统能够根据预期工作,而剩下的则由软件团队来开发应用代码。这种分散的团队里的各个成员可能并不在同一幢大楼里工作,甚至根本不在同一个国家。
您的工具,您的成功之路
所有用户均可从软件开发的集成工具中大获裨益。一人独自工作,通常没有时间去学习新工具的使用。小规模软件团队都有自己惯用的产品,并不希望新的软件环境强加在他们身上。多站点工作团队在基础架构方面已经进行了大量投资,不能为了每个基于当前芯片的项目都开辟新的环境。简而言之,虽然在硬件配置工具中集成软件开发功能是一项不错的特性,但是为商业和其它流行软件 IDE 提供功能丰富和可靠的支持则显得至关重要。
在详细介绍如何将软件 IDE集成到硬件环境中之前,我们应了解一下 PSoC 及其设计环境。PSoC 是一款完全可编程的嵌入式片上系统,其在单个芯片上集成了可配置的模拟和数字外设功能、存储器以及微控制器等。虽然技术有很大不同,模拟内容大幅增加,但设计流程仍类似于目前您所能看见的 FPGA 器件,特别是集成了硬件微控制器内核的器件。
PSoC Creator 工具可提供非常灵活的可视化嵌入式设计方法,其中包括预配置、自定义外设和分层原理图输入等。当在这款工具中构建设计时,许多软件文件已经创建完成了,最明显的就是每个元件所用的 API 文件都已经生成并放置在项目之中了。通过 Counter_Start() 和 ADC_SetValue() 等容易记住的名字,这些 API 构成了一种简单一致、易于使用的控制硬件外设的方法,而且无需了解全部实施细节。所有用于可编程器件的良好工具都应生成软件接口,因为“通过构建”是确保有效无误代码的唯一方法。除了 API 之外,还有包含配置可编程阵列代码的引导文件。应用总是使用这些文件,但通常不做修改,这些文件也是 IDE 导出特性的重要组成部分。
除了以硬件为中心的功能之外,PSoC Creator 还包括开发人员所期待的常用的软件特性:源代码编写、项目管理、集成型编译器、器件编程和片上调试。在现代化工具中,这些都很常见,但这种方法的问题也很简单,喜欢使用 PSoC 的人很多,但不是他们所有人都愿意在应用开发中使用赛普拉斯的软件工具。
样片设计
让我们先从一个简单的 PSoC 设计开始,便于讲解说明。PSoC Creator 的原理图捕获和参数化元件可让您轻松绘制峰值检波器电路图。
![](../img/eep/emb/emb-31926qqbbvmlj3hq.jpg)
这项设计使用了两个主要元件:一个比较器 (Comp) 和一个混频器 (Peak_Mixer)。比较器可简单地比较两个输入模拟电压并输出数字结果。混频器被配置为采样模式,输出参考和输入信号之间的差值并在每个时钟周期上更新该值。由于设计中的参考电压接地 (Vssa),因此混频器始终将采样的输入电压输出到另一个引脚(峰值)。
此外,混频器的输出也反馈到比较器的参考输入 (-)。当引脚 (Sig_In) 上的电压为低时,比较器输出也为低,并且混频器时钟被 AND 门阻塞。因此,混频器不会采样电压,并继续输出其最后采样的峰值电压。当引脚电压升高时,比较器改变输出,时钟不再进行门控,混频器则用新的峰值电压更新其输出。
构建这款设计会生成大量的 API。我们这里的目的只是想要接通电路:
? Comp_Start()
? Peak_Mixer_Start()
如果想要编写代码,我们需要创建 μVision 项目
- 基于PSOC的便携式多气体检测器(03-18)
- DIY机器人:神通广大的核辐射探测机器人设计方案,完整流程框图(05-04)
- 基于PSoC的自动开票盖章系统完整软硬件设计(06-28)
- 基于PSoC的远程目标实时检测及快速规避技术(09-15)
- PSoC Creator:面向嵌入式应用的开发工具(10-11)
- 设计超低功耗的嵌入式应用(二):五种电源模式的详细介绍(09-22)