考虑到目前市场上存在欠款问题并为了更好地回收资金并保护知识产权,结合S3C44B0X的内部资源设计了独特的硬件加密功能。通常加密是利用计算机的日历以及计算机中的硬盘序列号来实现的。计算机的运算能力强,算法实现也容易,但是往往也容易被解密。好的方法是利用电路硬件来做加密。首先,利用S3C44B0X内部的RTC设计日历定时器做硬件注册时间加密。第二,利用DS18B20中全球唯一的序列号作为注册序列号来做加密。DS18B20是DALAS公司生产的数字温度传感器,但在这里并不用其测温,而是利用其中全球唯一的序列号。它与ARM处理器的连接仅用一根数据线作串行数据传输。
3软件设计
系统控制任务与算法按照二级拓扑分布在各个嵌入式控制器以及上位机的软件中。STC89C52RD+单片机采用汇编语言编程,效率高,可靠性高。S3C44B0X为ARM7内核,采用C语言加汇编语言进行混合编程。上位机软件则采用功能强大的DELPHI6.0Windows应用程序开发工具开发,运用Object Pascal语言编写程序代码。这使得软件对床体的控制更加灵活、可靠和高效,界面简洁友好,操作方便、可靠性高。在开发过程中采用了一些新的技术,最主要的是控件技术,特别是在串行通信中采用了控件技术,大大提高了串行通信的可靠性,保障了系统的可靠性。其软件结构功能总体框图如图3所示。
3.1 通讯协议
上位机对牵引运动、旋转运动与开关量动作的控制与协调指挥是通过一定协议的数据通讯传达至各嵌入式处理器执行的。通讯指令依照异步串行数据通讯格式制定,包括字头、下位机地址、指令数据和结束符三部分。字头与结束符用于数据同步。指令、数据传达参数设置与控制等信息。
上位机通过485总线主动发出询问指令来获取数据并进行控制。各下位机嵌入式控制器平时处于被动接收状态,当确认查询地址是自己时,即上传数据或执行命令。实践中发现由于信道的问题,首先及最后发送的字符往往会出现错误,从而造成一定的误码。这会影响到系统的可靠性。为了解决这一问题,在字头发送前及结束符发送后,多发送几个无关的字节“0xFF”。实验证明,大大降低了误码率。
3.2 基于Spcomm控件的串口通信实现
用Delphi 实现串口通信,常用的方法有:第一,使用控件。如Mscomm和Spcomm控件等。第二,使用API函数在Delphi 中调用其它串口通信程序。使用API方法的优点是适合编写较为复杂的低层次通信程序,但缺点是编写串口通信程序较为复杂。本系统选用Spcomm。它是Small-Pig Team开发的一个第三方Delphi串口控件,该控件具有丰富的与串口通信密切相关的属性及事件,提供了对串口的各种操作,且编程简单、通用性强、可移植性好。在Delphi软件开发中成为一个被广泛应用的串口通信开发控件。Spcomm串行通信控件为多线程。接收和发送数据分别在两个线程内完成,接收线程负责收到数据时触发OnReceiveData事件。WriteCommData()函数将待发送的数据写入输出缓冲器,发送线程在后台完成数据发送。在接收和发送数据前需要初始化串口,用StartComm打开串口,退出程序时用StopComm关闭串口。
4 总结
医疗设备产品特别是理疗设备直接作用于病人身体,可靠性是第一位,不能出差错。因此,系统的优化设计是关键。将控制任务与算法分布在不同的嵌入式处理器中并行运行,可使每个处理器的程序都明确、清晰,并且方便上位机进行控制。本系统已交付厂家(河南腾远医疗设备有限公司)生产,并已在多家医院投入治疗,反映效果良好,并已产生约一百万元经济效益。已经专家会议鉴定评审为河南省科技成果。