1. 引言
胃肠道疾病一般为多发性的常见病,严重威胁着人们的身体健康,如果能够定期进行肠镜普查及早发现胃肠道息肉病变病并治疗,可以极大地降低胃肠癌的发病率和死亡率 [1]。无线电子胶囊内镜被业界认为是未来消化道内窥镜发展的主导方向 [2],但现有的胶囊内窥镜通信技术由于带宽的限制难以实现高质量图像实时传输。原始图像数据的实时传输可能需要76 Mbit/s的速率,即使采用图像压缩技术,为保证高质量的图片或视频传输,仍然需要高达10 Mbit/s的数据传输速率 [3]。因此我们考虑UWB (Ultra Wide Band)超宽带无线通信是否能够实现高速率、高质量的图像传输。
UWB超宽带无线通信作为近年通信领域新兴起的一种高速短距离无线互联技术,具有低电磁辐射功率、高速率传输、大信道容量、抗干扰能力强、低功耗、利于体内超小型天线设计等独特优势,使其很适合作为无线体域网(Wireless Body Area Network, WBAN)、无线个人网(Wireless Personal Area Network, WPAN)及生物医疗电子系统的通信技术 [4] [5]。在IEEE802.15.6-2012人体区域短距离无线通信标准中 [6],主要包括ISM频段、WMTS频段、MICS频段的窄带PHY标准,UWB频段的宽带PHY标准和HBC频段的PHY标准。IEEE802.15工作组已经把UWB列为WPAN使用的三大通信技术之一,IEEE802.15.6小组也已经把UWB列为WBAN通信技术的强有力竞争者。
因此,UWB超宽带通信技术以其相较于其他窄带无线通信技术的独特优势,成为新一代电子胶囊内镜的有力候选技术。在本项目中,采用超宽带通信技术,利用STM32单片机和相应的超宽带芯片来实现传输数据,提高了传输图像的速率与质量,解决了传统窄带通信的带宽限制,降低了功耗,实现了长时间续航。
2. 总体系统架构思路
系统总体模块结构如图1所示。主要包括单片机模块、通信模块、天线模块、上位机模块等。
在传输端,系统首先将待传输的数据通过串口传输到STM32F405单片机中,单片机进行数据的计算与处理,然后通过DW1000超宽带芯片和天线将数据发送出去。在接收端,系统通过天线与DW1000超宽带芯片接收发射端发出的数据,再由单片机处理后通过串口传输到上位机或者PC端,从而完成数据的传输与图像的重建。医生可以在PC端查看传输的图像,并辅助其做出相应的医疗诊断。
![](//html.hanspub.org/file/5-1541988x9_hanspub.png)
Figure 1. System module structure diagram
图1. 系统模块结构图
3. 系统各硬件组成部分
3.1. 单片机芯片的选择
单片机芯片选择的是STM32F405RGT6如图2所示,STM32F405RGT6芯片是意法半导体公司开发的一款高性能微控制器产品,其拥有的ARMCortex-M4内核,是STM32系列中的高性能产品。工作频率高达168 MHz,内部设有看门狗,可以减少外部因素的干扰,且嵌入SPI,UART,I2C等多个标准数据接口,引脚数量高达144个,可以简便的进行外设的扩展 [7]。同时具有大容量闪存以及程序存储空间,Flash高达1 MB,相比于STMF1系列的Flash的512 KB,更利于数据的传输与相关代码的编写。并且由于STM32F405系列专为医疗、工业应用而设计,所以其封装小至4 × 4.2 mm2,有利于设备的小型化和功耗的降低。综上,该芯片具有小型化、功耗低、速度快、性能强的优势 [8],可以很好的满足实验的需求。
![](//html.hanspub.org/file/5-1541988x10_hanspub.png)
Figure 2. STM32F405RGT6 diagram
图2. STM32F405RGT6示意图
3.2. 通信模块
通信模块使用DW1000芯片内部IC框图如图3所示。DW1000是兼容IEEE802.15.4-2011协议的超宽带无线收发芯片,由一个包含接收器和发送器的模拟前端(包括RF和基带)以及一个与主处理器接口的数字后端组成,控制模拟前端,接收来自主机处理器的数据进行传输并提供通过工业标准的SPI接口将数据接收到主机处理器,其可以利用STM32芯片上的SPI接口来控制。其通信速率根据传播环境而不同,300 M拥有110 Kbps的传输速率;40 M左右时传输速率为6.8 Mbps。工作频率3.2~7 GHz,单信道宽度500 MHz。可以实施各种控制方案来维护和优化收发器性能。
3.3. 天线模块
模块中使用的天线是Partron电介质芯片天线,部件号为ACS5200HFAUWB,其尺寸为6 mm × 8 mm,工作频率3.2~7.2 GHz,VSWR (Voltage Standing Wave Ratio) < 3.5,阻抗是50 Ω,天线方向性为全向性,中心频率处(5.2 GHz)最大增益为2.51。其具有良好的特性,能同时满足小型化、高增益和全向性的要求。
4. 系统软件设计
软件整体功能模块结构如图4所示,首先将单片机和DW1000芯片初始化。将待传输的数据进行压缩和分帧后存储到发射端STM32的存储卡中,之后利用USART1配置基站和节点,来规定传输的方向,对EEPROM (Electrically Erasable Programmable Read Only Memory)进行配置,存储当前节点的角色,保证下次上电时可以直接读取EEPROM记录的角色和地址信息,来执行相应的程序。如果角色为基站,DW1000直接进入接收状态,如果角色是节点,需要主动发送数据给基站。发送的数据方式根据自己设定的发送协议与接收协议来实现,最后将接收到的数据文件进行缓存并且在上位机上显示出来,还原矩阵重建图像,获得该胃肠道的影像数据。
![](//html.hanspub.org/file/5-1541988x12_hanspub.png)
Figure 4. Overall functional module structure diagram
图4. 整体功能模块结构图
4.1. 初始化
将单片机和DW1000芯片初始化。首先初始化外设接口,主要思路为GPIO控制LED,I2C1控制EEPROM和LPS25H,串口USART1用于配置地址和角色,SPI1控制DW1000,然后自检外设、EEPROM等,最后自检DW1000,外设初始化完毕后利用串口将配置打印查看是否完成。初始化配置成功后串口打印出的数据如图5所示。
![](//html.hanspub.org/file/5-1541988x13_hanspub.png)
Figure 5. Initialize the configuration diagram
图5. 初始化配置图
4.2. 预处理
预处理主要是将收集的图像数据进行压缩,分帧,进而存储,更有利于数据的传输。
4.2.1. 信号压缩
在众多的压缩编码方案中,变长编码由于其原理简单、易于实现的特点得到广泛的应用。而哈夫曼编码是最有效的变长编码。它是一种利用信息符号概率分布特性的变长字的编码方法。原理为对于出现概率大的信息符号编以短字长的码,出现概率小的信息符号编以长字长的码,每个数据的代码各不相同。这些代码都是二进制码,且码的长度是可变的 [9]。哈夫曼编码的基本步骤是从大到小排列、相加、赋码字、得赫夫曼编码。
4.2.2. 分帧
UWB通信是基于帧的发送和接收。根据IEEE802.15.4-2011标准中的规定,给出由DW1000收发器IC实现的UWB帧结构如图7所示,图6显示了UWB帧的一般结构,它由包括前同步码和SFD(帧定界符的开始)的同步首部开始,之后PHY首标(PHR)定义该帧的数据有效载荷部分的长度和数据速率。定义后可以传输的数据最多为127 × 8 bit,由于图片压缩后的数据量依然很大,没有办法直接将其发送出去,所以压缩后的数据需要通过分帧来满足相关协议与硬件的需要。
将图像数据经过压缩、分帧等预处理之后存储到发射端STM32的存储卡中,有利于图像数据的实时传输。
4.3. 结点配置
结点共有两种模式,分别为Anchor基站和Tag标签,基站的地址设为0,其他的标签结点地址分别设为1、2、3等,当数据在单片机中被发送之前,单片机先自行检测自己的结点属性,当为Anchor基站模式时,单片机控制DW1000直接进入接收状态,当结点属性为Tag标签时候,单片机需要控制DW1000主动发送数据给基站。结点配置最多支持九个结点,可以实现多个标签和基站的相互通信,方便进行扩展,增强了系统的灵活性。
4.4. 设定协议
4.4.1. 发送端协议
发送端协议流程图如图7所示。为了发送数据帧,主机必须向发送数据缓冲区中写数据。对前导码长度、数据率和PRF的选择也要写入寄存器发送帧控制。发送器配置在IDLE模式下进行,帧配置需要在活动发送状态下执行。假设所有其他配置都已经完成,主机通过设置系统控制寄存器中的TXSTRT控制位来启动发送。发送请求完毕,DW1000将自动地将完整的一帧发送出去,包括:前导码、SFD、PHR和数据。FCS (CRC,循环冗余校验)自动添加在消息中,作为MAC帧的补充。发送结束将以系统时间状态寄存器中的TXFRS位状态的形式通知主机。之后DW1000将回到IDLE模式,等待新的指令。为了快速周转,可以在将帧数据写入TX_BUFFER之前启动前导码发送,或者将帧长度写入寄存器文件的TFLEN和TFLE字段中指定的长度。因此,在将TX数据写入DW1000之前,可以开始前导码传输。然后主机微处理器具有任何固定响应延迟的时间以及发送前同步码和SFD的时间,它需要在TFLEN和TFLE中设置帧长度,以便DW1000插入到PHR中,然后主微处理器需要在DW1000发射器消耗数据之前将单个字节的数据写入TX_BUFFER。
4.4.2. 接收端协议
通过主机请求或通过自动重新启用接收器来启用帧的接收。接收机持续搜索前导码,直到检测到或获取前导码为止,然后将尝试进行解调。前导码检测超时可被设置为允许接收器在期望的时段之后停止搜索前导码。
前同步码序列通过长序列中多个前同步码符号的块互相关来检测。所使用的块大小由子寄存器中的PAC配置选择。PAC大小应该根据预期的前导码大小来选择。当前导码足够长时,更大的PAC尺寸可以提供更好的性能。
一旦检测到前导码序列,接收机开始累积相关的前导码码元,同时寻找SFD序列(前导码码元的特定序列)。当检测到SFD时,累加停止。SFD标记了PHY头的开始,定义了从前置码解调改变到PHR以及随后的数据的BPM/BPSK解调。PHY报头的主要作用是传送帧的数据部分的长度,并指示用于数据解调的数据速率。
在接收机中,使用维特比(Viterbi)解码器来恢复数据比特,其也用于PHR接收,然后通过里德所罗门(Reed Solomon)解码器来进行任何进一步的校正。接收到的每个八位字节都通过一个CRC校验器,检查帧是否与发送的FCS相符。帧的成功接收通过系统事件状态寄存器中的RXDFR和RXFCG事件状态位发送给主机。
4.5. 数据处理
将人体的胃肠道数据转换成矩阵的形式,利用接收端将接收的数据通过串口保存成txt的形式存储到上位机中,利用上位机读取传输的矩阵数据(如图8所示),并将收到的矩阵数据重建成图像,并在上位机中实时显示出来。
![](//html.hanspub.org/file/5-1541988x16_hanspub.png)
Figure 8. Schematic diagram of upper computer receiving data
图8. 上位机接收数据示意图
5. 实验设计
搭建好的系统后,将系统的传输端放在人体的胃肠道环境中,实物如图9和图10所示,人体胃肠道环境由配置好的模仿人体脂肪和肌肉凝胶的体液模拟 [10],配方如表1所示。放置在胃肠道模拟环境中的储存好图片矩阵数据的发送端通过模拟的人体体液将矩阵数据传送出来,接收端在远处接收发送端传出的数据,并且在上位机中将图片还原。通过测试其接收到的矩阵数据和重建的效果来判断系统的相关性能。相关测试的重建图片与原图像的结果显示在图11中。
![](Images/Table_Tmp.jpg)
Table 1. The recipes of human fat and muscle mimicking gels
表1. 模仿人体脂肪和肌肉凝胶的配方
![](//html.hanspub.org/file/5-1541988x17_hanspub.png)
Figure 9. Physical picture of transmission system
图9. 传输系统实物图
![](//html.hanspub.org/file/5-1541988x18_hanspub.png)
Figure 10. Physical picture of transmitting terminal
图10. 传输端实物
![](//html.hanspub.org/file/5-1541988x20_hanspub.png)
Figure 11. Original image (left) and reconstructed image (right)
图11. 原图像(左图)与重建后的图像(右图)
6. 结束语
本文通过STM32芯片和UWB技术传输人体胃肠道图像数据,采用超宽带通信技术,提高了传输图像的速率与质量,解决了传统窄带通信的带宽限制,降低了功耗,实现了长时间续航。配置了人体胃肠道高频的体液环境,进行了相关的人体体液的超宽带传输数据实验,获得了相关还原图像的实验结果,更精准地反映超宽带数据传输的效果。该系统还可以将收到的医疗数据进行保存,其实时显示图像的功能有助于医生及时做出科学的医学诊断,对医疗行业具有广泛的实用价值。
基金项目
这项工作得到了国家级大学生创新创业训练计划的资助,项目编码为201910145231。