骨矿物质密度测量设备和方法_3

文档序号:8459811阅读:来源:国知局
图8示出了用于密度计的计算机子系统本地处理器的示例任务模型。
[0105] 图9示出了用于密度计的计算机子系统本地处理器的示例终点定义表。
[0106] 图10示出了密度计的计算机子系统本地处理器的示例控制字节描述。在一种 示例实施方式中,控制数据块可以包括在批量终点2上从PC/104发送至计算机子系统板 LPC2148控制器的64字节的块。图10描述了示例控制值(忽略了未使用的值)。
[0107] 图11示出了密度计的示例状态字节描述。在一种示例实施方式中,状态字节块可 以包括在批量终点2上从计算机子系统板LPC2148控制器发送的64字节的块。图11描述 了示例状态值(忽略了未使用的值)。
[0108] 图12示出了密度计的X射线成像系统的示例状态转换图。
[0109] 图13示出了对于密度计的一种示例功率/音频控制器的示例输入/输出(I/O) 描述。在一种示例实施方式中,功率/音频控制器包括位于计算机子系统板上的爱特梅尔 (Atmel)功率/音频控制器,即ATTINY微控制器。其可以负责管理上电和掉电以进入待机 模式,以及产生到音频蜂鸣器的AF输出。信号源文件可以与爱特梅尔(Atmel) IDE-起使 用,以产生固件图像,从而加载到处理器中。功率/音频控制器可以以重复的循环使用单个 任务来监测上电、掉电和蜂鸣信号的状态。音频/功率控制器可以使用简单的单个任务过 程,例如图14中所描绘的示例伪码。
[0110] 图15示出了密度计的示例过滤器臂模块的示例输入/输出(I/O)描述。在一种示 例实施方式中,过滤器臂位置控制器可以包括位于过滤器板上的PIC微控制器。其可以负 责将过滤器臂移动至其所要求的位置并且通过读取光学限位传感器来报告过滤器臂位置。 单个源文件可以与PIC Proton开发环境一起使用,从而产生固件图像以加载到处理器中。 过滤器臂位置控制器可以在重复的循环中使用单个任务来监测诸如在图16中所描绘的示 例伪码中所描绘的过滤器位置请求信号的状态。
[0111] 密度计的X射线电源系统可以包括X射线电源控制器。在一种示例实施方式中, X射线电源控制器可以包括位于X射线电源板上的PIC微控制器。其可以负责管理灯丝电 流、报告电源的状态(波束启用;错误)、通过监测阳极电压和调制电流驱动电路的脉冲宽 度来管理阳极电流和/或提供次级/备用计时器。
[0112] 单个源文件可以与PICProton开发环境一起使用,从而产生固件图像以加载到X 射线电源系统处理器中。X射线电源系统处理器可以在重复的循环中使用单个任务来监测 过滤器位置请求信号的状态。
[0113] 当施加了电源时,可以检查外部谐振器,以查看其是否以例如IOMHz运转。这可以 通过使用例如512ms的监视定时器且将定时器设置为例如零到400毫秒来完成。如果谐振 器以例如5MHz运转,则定时器可能需要例如800ms来超时,但是监视定时器可以在其发生 之前重置1C。当施加例如12V电源时,例如50KV和70KV,死区时间可以从EEROM被复制到 RAM。然后可以使EEROM位置增加二,以实现EEROM的损耗均衡。然后LED上的X射线可以 开启1秒。当LED关闭时,X射线电源可以为开启灯丝做好准备。当灯丝被开启时,其可以 被设置为例如30KHz的低功率,例如具有127的死区时间400ms。然后死区时间可以变为例 如75、300ms。然后灯丝驱动可以变为例如15KHz,具有先前使用的例如50KV或70KV的死 区时间200ms。例如900ms之后,可以打开用于X射线输出的HV。注意X射线管灯丝可能 需要例如总共开启1. 5秒以达到5mA设置。
[0114] 当电源被施加给灯丝时,以及在灯丝电路中存在短路的情况下,可以关闭施加给 灯丝的电源,而故障LED可以被开启。关闭灯丝可以清除故障。在例如第三次尝试之后,故 障LED可以被开启而X射线LED和X射线输出会闪烁。关闭灯丝可能不能清除该故障。灯 丝可能需要被开启100ms并关闭500ms来清除该故障状况。如果灯丝开启例如大于30秒, 则灯丝定时器可以使灯丝关闭,并且故障LED可以被开启。为了清除该故障,灯丝可以被关 闭。当HV被开启,X射线头可以发出X射线。例如,在HV被开启6ms之后,mA控制可以开 始调整灯丝驱动的死区时间,以使得X射线管电流是例如5mA。当HV被开启,检查KV以查 看50KV是否在例如45KV和60KV之间,以及例如70KV是否在65KV和85KV之间。可以检查 mA以查看其是否在例如4. 5mA和5. 5mA之间。如果在HV开启时KV或mA超出范围,则HV 不会被关闭。当HV被关闭,并且KV或mA超出范围时,这会产生故障。故障LED会被开启, 并且X射线LED和X射线输出会闪烁。为了清除这个故障,灯丝可需要被开启例如100ms, 并被关闭例如500ms。如果HV被开启例如大于200ms,则HV可以被关闭。当灯丝被关闭时 可以清除故障。当HV被关闭,然后灯丝被关闭时,如果与上次照射不同,则灯丝驱动的死区 时间可以被存储在EEROM中。X射线电源可以为下次照射做好准备。如果HV被关闭,而灯 丝仍被开启,则在产生故障之前有例如10秒时间来改变KV设置。在改变KV设置时,可以 在例如200ms之后开启HV。KV设置改变之后产生故障之前会有例如30秒。可以通过关闭 灯丝来清除故障。
[0115] 密度计的主机软件可以负责管理⑶I以及与终端用户的交互、控制高电平和中电 平设备特征、执行BMD测试以及打印结果、执行QC体模测试、应用功能(如设置日期和时 间)和/或将测试结果传送至其他介质。
[0116] 可以使用例如应用程序管理器Makefi Ie来管理PC/104模块依赖关系。
[0117] 图17示出了密度计的示例任务模型。应用程序处理任务一一1/0、⑶I、设备监 测一一可以被分配给各线程。应用程序设计可以使用PosiX线程来建立多线程环境。数据 分享可以通过被称为AccuDEXA?控制块的线程安全数据区来发生在控制/状态回路线 程(usblpclib.c中的函数control_status_loop〇)与从属线程之间。对ACB的访问处于 互斥控制之下。为了获得对ACB的访问,线程必须调用函数lock_acb()来读取或写入数据, 然后调用unlock_acb()来解锁互斥。
[0118] 当由起动进程(脚本run_gt.sh,由startx在rc初始化期间调用)调用密度计程 序时,可以创建初始程序线程。其可以负责创建应用程序所要求的全部从属线程,使用函数 来初始化⑶I、以及初始化数据结构。如果在维护模式 下已经手动调用了程序,则初始化线程可以通过函数menU_l〇〇p()来处理维护模式菜单的 显示。否则,对于正常生产使用,一旦从属线程运行,初始化线程在终止其自身之前可以保 持空闲,直到gtk主循环终止。
[0119] 一旦被创建,该线程可以立即调用gtk主循环函数gtk_main_l〇〇p()。该循环函数 可以负责处理到显示器和触摸屏以及来自显示器和触摸屏的所有Gn事件。其可以根据需 要通过回调系统来调用应用函数。因为⑶I是基于事件的,所以可以由GTK2内的回调机制 来调用所有功能。这会需要使用状态模型来跟踪回调之间的应用程序的当前状态。两个函 数(例如_get_gui_state()和set_gui_state〇)可以使得能够使用来自从gtkgui.h获 取的以下列表的值来设置GUI状态:
[0120] /*这些定义是n的状态*/
[0121] #defineMAIN_MENU0
[0122] #definePATIENT_IDI
[0123] #definePATIENT_NAME2
[0124] #definePATIENT_AGE3
[0125] #definePATIENT_GENDER4
[0126] #definePATIENT_ETHNICITY5
[0127] #definePATIENT_DOMINANT_HAND6
[0128] #definePATIENT_SUMMARY7
[0129] #defineEDIT_PATIENT_ID8
[0130] #defineEDIT_PATIENT_NAME9
[0131] #defineEDIT_PATIENT_AGE10
[0132] #defineEDIT_PATIENT_GENDER11
[0133] #defineEDIT_PATIENT_ETHNICITY12
[0134] #defineEDIT_PATIENT_DOMINANT_HAND13
[0135] #defineP0SITI0N_FINGER14
[0136] #defineENGAGE_XRAY15
[0137] #defineANALYSIS_WIND0ff16
[0138] #defineCALCULATING_BMD17
[0139] #definePRINT_DECISION18
[0140] #defineSYSTEM_CHECK_MENU19
[0141]#defineDIAGNOSTICS20
[0142]#defineUPGRADE_MENU21
[0143] #defineUPGRADING22
[0144] #define T0UCHSCREEN_CAL_WIND0ff 23
[0145] #defineCONFI⑶RE_SYSTEM24
[0146] #defineSET_DATE25
[0147] #define SET_TIME 26
[0148] #defineBURN_IN_TEST27
[0149] #defineSYSTEM_STARTUP28
[0150] #define PHANTOM_QC_TEST_START 28
[0151] #define PHANTOM_QC_POSITION_PHANTOM 29
[0152]#definePHANTOM_QC_CALCULATING_BMD30
[0153]#definePHANTOM_QC_SHOff_RESULTS31
[0154] #define PHANTOM_QC_REPEAT 32
[0155]#define
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1