引言
超声波流量计是随着IC技术迅速发展而开始得到实际应用的一种非接触式仪表。它是一种利用声学原理工作的新型流量测量仪表。与传统流量计(如孔板、涡轮流量计等)相比,它具有测量准确度几乎不受介质温度、压力影响等优点,尤其是在大管径流量测量方面,其优越性更加明显,因此得到了越来越广泛的应用。
近年来,随着Altera公司32位软核CPU NiosII的推出,基于FPGA的SOPC(System On a Programmable Chip)技术发展越来越快。SOPC是可编程系统,具有灵活的设计方式,并且可裁剪,可扩充,可升级,同时具备软硬件在线系统可编程的功能。SOPC兼具PLD和FPGA的优点,它的特点包括:至少包含一个嵌入式处理器内核;具有小容量片内高速RAM资源;有足够的片上可编程逻辑资源;有处理器调试接口和FPGA编程接口;可能包含部分可编程模拟电路;单芯片,低功耗,微封装。正是基于这些优点,基于NiosII的SOPC得到了越来越广泛的应用。
本文就是基于超声波以及SOPC这两项技术来设计便携式的超声波流量计,充分发挥这两项技术的优点,实现对液体、气体的高精度测量。
3.3 用Niosll IDE编写整个系统的控制程序
NiosII IDE(Integrated Development Environment,集成开发环境)提供了完整的C/C++软件开发套件,包括编辑器、项目管理器和构建工具、调试器和兼容CFI(Common Flash Interface)的Flash编程器。调试器连接多种目标系统,包括FPGA硬件(通过JTAG电缆)、NioslI指令集仿真器和Modelsim-Altera软件,因而能够提供最灵活的调试方案。
为了方便用户编程,NiosII为用户提供了设备驱动程序,也就是硬件驱动层数据库HAL。软件编写人员只要利用HAL提供的各种函数就能编写应用程序,从而方便地与底层硬件进行通信,而无需关心底层硬件的实现细节。HAL系统库可在IDE创建一个新工程时,由系统自动生成。
NioslI IDE完全支持C/C++,本系统采用的编程语言是标准C。添加必要的头文件,编写各个中断服务程序以及子程序,就可以实现整个超声波流量计的控制。
仿真NiosII设计包括3种方式:“NiosII IDE Debugger+Signal Tap II+物理板”的软硬件联调方式,“NiosII IDE Debugger+指令集仿真器ISS”的软件调试方式(ISS可对部分组件建模),使用Modelsim-Altera进行的RTL级的功能仿真方式(可以调试处理器及其外设之间的交互情况)。Debug的方式可以通过IDE里面的RunDebug As进行选择。NiosII IDE也可以进行设置断点,单步调试,观察变量,内存以及表达式的值等操作,在此不一一赘述。Debug之后还需要建立工程,若整个系统无错,可以生成一个ELF文件,只有完整建立起来的系统才可以下载到FPGA的板上运行。具体实现方式是通过NiosII IDE里面的Project-Build Project来建立工程,结果会提示程序代码总共占用了多少代码,剩余多少的RAM空间,以及错误和警告提示。根据错误警告提示修改代码,直至无错完整地建立工程,这样NiosIIIDE里面的工作就全部完成了。通过FPGA下载线将程序下载到FPGA板上,整个系统就可以完整地运行。