基于NiosII的便携式超声波流量计设计
3.3 用Niosll IDE编写整个系统的控制程序 图5中下方是经过滤波之后的超声波的发射和接收信号。可以看到信号清晰稳定。上方的信号是经过自动增益控制之后的超声波回波信号,通过自动增益控制之后的接收信号可以稳定在一定的幅度之内,保证了系统对高精度计时的要求。
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板上,整个系统就可以完整地运行。
4 实验结果及分析
将程序正确下载到FPGA板上,硬件正确连接,接上超声波探头,进行实验。实验结果表明,本系统可以准确地实现对整个系统的控制,经过信号处理的超声波信号清晰稳定,实验结果能够满足系统的精度要求,效果良好。图5即为实验现场接收到的超声波信号。图6为比较电压的信号图。
图6中下方也是滤波之后的超声波发射和接收信号。上方的信号为电压比较器所产生的计时停止信号。当通过自动增益控制之后的接收信号达到电压比较器的参考电压时,电压比较器便会产生一个计时停止信号,并发送给FPGA,这样计时停止,便准确地测量了超声波的传播
时间。
实验结果表明,本系统可以准确地实现对整个系统的控制,经过信号处理的超声波信号清晰稳定,实验结果能够满足系统的精度要求,效果良好。
- 基于NiosII32位处理器的LED大屏幕显示系统设计(09-06)
- 便携式媒体播放器的电源管理(07-01)
- 如何设计可支持差分和单端信号的便携式产品音频接口(09-14)
- 适用于单节或两节电池供电的便携式应用的完整电池组设计(10-08)
- 延长锂离子电池使用寿命的最新电源解决方案(01-17)
- 便携式电子设备、充电器和电源适配器的过流保护元件PPTC(11-22)