新闻中心

EEPW首页 > 医疗电子 > 设计应用 > 基于Nios II的MRI脊柱图像分割系统

基于Nios II的MRI脊柱图像分割系统

——
作者:北京交通大学计算机学院信息科学研究所 李伟明 史睿琼 李波时间:2008-05-28来源:电子技术应用收藏
五. 设计方法

      1. 系统硬件设计

本文引用地址:http://www.eepw.com.cn/article/83229.htm

  SOPC Builder设置如下图

  Quartus II 软件下模块示意图如下

  系统实物图片:

  2. 实现步骤及实现方法

  1. LCD图像显示及人机交互模块

  (1) LCD及鼠标硬件部分

  LCD控制器芯片采用TCB8000C,控制5.7寸TFT65000色LCD显示屏。控制器接口与MCU接口图如下,通过编写了硬件程序以Avalon总线从设备的方式连接到Avalon总线上,实现 Nios直接访问LCD控制器的功能,利于驱动程序编写,简化后续的GUI移植中有关LCD驱动部分。

  系统采用PS/2接口鼠标,PS/2鼠标接口采用一种双向同步串行协议。即每在时钟线上发一个脉冲,就在数据线上发送一位数据。与nios的连接仍然采用verilog语言编写Avolon从设备,实现PS/2鼠标的传输协议。程序包括mouse_avalon_interFace.v,mouse_register_file.v , ps2_mouse_interface.v 。其中mouse_avalon_interface.v 是avalon总线从设备接口,mouse_register_file.v,ps2_mouse_interface.v完成PS/2鼠标协议的数据转换和传输。编写对应的GUI下的驱动程序,实现GUI的鼠标操作功能。

 

  (2) μc/gui移植

  μC/GUI是一款针对嵌入式系统的优秀图形软件,它具有源码公开、可移植、可裁减、稳定性和可靠性高的特点。μC/GUI提供了丰富的界面元素,例如按钮、编辑框、滑动条等控件,同时支持高效的窗口会调机制,为界面与应用函数之间提供了良好的接口机制。多功能数字小相框系统的人机交互界面正是利用这个工具进行开发的。

  μC/GUI软件体系结构如下:

  μC/GUI函数库为用户程序提供GUI接口,包含的函数有文本、数值、二维图形、输入设备以及各种窗口对象。其中,输入设备可以是键盘、鼠标或触摸屏;二维图形包括图片、直线、多边形、园、椭圆、圆弧等;窗口对象包括按钮、编辑框、进度条、复选框等。

  μC/GUI函数库可以通过GUIConf.h文件进行配置,配置的内容包括是否采用内存设备,是否采用窗口管理器,是否支持操作系统、触摸屏,以及配置动态内存的大小等。

  在LCDConf.h文件中定义了与硬件有关的各种属性,如液晶的大小、颜色以及与液晶的接口函数。而LCD驱动文件则负责把μC/GUI的各种函数解释成LCDConf.h文件中定义的液晶接口函数,这个文件与具体的硬件连接无关。

  μC/GUI与LCD的硬件接口通过驱动文件把硬件接口函数转化为LCDConf.h中定义的LCD读写函数。

  μC/GUI移植过程:

  1. 配置文件的移植

  移植工作首先需要完成的是对配置文件的GUIConf.h, LCDConf.h移植,根据数字相册系统的显示模块的要求,对配置文件的相关的参数进行配置。

  2. LCD驱动的移植

  μC/GUI针对不同的液晶控制器提供了多种驱动程序,如KS0713、SEDl335、T6963等控制器都有对应的液晶驱动程序。但是由于在本系统中,采用的显示模块为TOPWAY TCB8000A LCD控制器和TFT、 65000色、LCD屏。而μC/GUI没有提供相关控制器的驱动,并且与μC/GUI提供驱动支持的LCD控制器相比较,TCB8000A控制器拥有自己独立的屏幕控制指令体系,这给μC/GUI在TCB8000A控制器的移植工作带来了很大的难度。

  在移植的过程中,我们首先运用TCB8000A的指令体系,实现了μC/GUI为上层应用函数提供的大部分API函数,接着对于TCB8000A控制器不能在硬件支持的API函数,我们采用软件实现的方法对驱动进行了修补,最后通过对大量控件显示测试实验,调整了在LCD驱动中运用的TCB8000A显示指令中的参数,使得LCD驱动的性能达到最优。最终实现了μC/GUI在TCB8000A控制器上的无缝移植。

  3. 图像数据存取模块

  SD卡是Secure Digital Card卡的简称,直译成汉语就是“安全数字卡”,是由日本松下公司、东芝公司和美国SANDISK公司共同开发研制的全新的存储卡产品。SD存储卡是一个完全开放的标准(系统),多用于MP3、数码摄像机、数码相机、电子图书、AV器材等等,尤其是被广泛应用在超薄数码相机上。SD卡在外形上同MultiMedia Card卡保持一致,大小尺寸比MMC卡略厚,容量也大很多。并且兼容MMC卡接口规范。另外,SD卡为9引脚,目的是通过把传输方式由串行变成并行,以提高传输速度。它的读写速度比MMC卡要快一些,同时,安全性也更高。

  我们为了使系统更具有广泛的应用性、兼容性,我们决定使用SD卡作为设备的主要存储介质,用于存放我们的照片、音乐、素材等重要数据。DE2上的SD读卡装置为1线方式,其速度受到了很大限制。我们把装置改动为4线方式,使其更加符合我们系统的要求。

  在软件开发集成环境下,包含了uc/os,可以使用户方便的应用到自己的软件工程里,我们为了更合理使各任务共同执行、共享cpu,我们使用了uc/os操作系统,并为其加挂文件系统。一开始我们选用了zlg文件系统,在成功移植后,我们测试了他的速度,速度不尽人意。在向sd卡读写1M数据分别需要用时37sec和57sec。我们分析了它的耗时所在,一方面sd卡读写模式限制,在标准的DE2开发板上,sd卡使用的是1线读写模式,其数据线只有1根,速度受到了很大的限制,我们通过修改其模式,增加数据线的方式,使sd卡的读写模式改变为4线的sd模式,经过测试,速度有了提高,分别为17sec和27sec,但是速度并不是我们假想的快到原来的四倍,这是因为另一方面的影响—文件系统,经过上网查询,发现zlg/fs的性能不高,浪费了很多时间,我们决定使用Micrium 公司的Uc/fs,他和uc/os有着很好的兼容性,在性能上也是得到了大众的好评。经过几周的努力我们成功移植了uc/fs 1.34版本到de2平台上,为四线模式的sd卡架起了文件系统。

 

  经过比较测试,读写速度有了很大提高,1M数据读写分别只用时3.6s和11s。这样基本满足了我们存取数据文件的速度要求。但是仍存在着写较慢的问题,原因在于在写数据到sd卡的时候每一个block都需要计算16位的CRC校验,占用了一部分发送的时间,我们选择采用自定义用户指令的方式加快CRC16运算速度,往SD卡写入一张MR图像 (约1.5M)的时间从21.7S降低到15.8S。选用更高速的sd卡,还能有效的加块写卡的速度。

  SD模式时序

  •   CLK: Host to card clock signal
  •   CMD: Bidirectional Command/Response signal
  •   DAT0 - DAT3: 4 Bidirectional data signals.
  •   VDD, VSS1, VSS2: Power and ground signals.
  •   1线与4线区别

  Single Block Read

  Single Block Write

  



评论


相关推荐

技术专区

关闭