2.2 发送方的数据发送和协议解析
非授权用户的发送方具有感知能力,该认知网络中的智能接入功能即由其来实现。在初始化完成之后,发送方需要对当前设置的频率段进行频谱检测[3-5],将处于忙碌状态与闲置状态下的频点分开,进而在闲置的频点中找出一个最佳的频点。最佳频点找到后,发送方接着发送握手信息。在没有收到对方应答信号之前,发送方会一直处在握手状态。收到对方的应答信号之后,发送方才进入数据发送阶段。在这个阶段中,发送方每发完一帧数据后都要对当前使用的中心频率进行检测。若检测到授权用户仍然没有使用该频率,则发送方继续发送剩余数据,直到数据传送完毕。若发送方检测到当前中心频率正被授权用户使用,则应及时避开这个频点,重新寻找新的频谱空隙建立起通信系统。如图4所示。
2.3 接收方的数据接收和协议解析
接收方的基本任务是接收数据并将接收到的数据进行保存。其状态转换图如图5所示。在没有等到非授权用户握手信号之前,接收方会在各个频率点上进行循环扫描检测。若在某个频点上检测到有载波存在,接收方就试着去握手。如果握手失败,接收方就变换频点继续检测。一旦握手成功,接收方就开始进行数据的接收。在数据接收阶段,如果发送方频率保持不变,接收方就可以在无需变频的情况下完成所有数据的接收。但如果发送方在传输数据的过程中切换了频率,那么接收方在原来的频率上已经收不到数据信息,需要退出数据接收状态重新进行循环扫描检测,再次握手成功后继续接收剩下的数据。如果发现数据序号错位,理论上发送方与接收方使用的频率相同,则只需要调整步伐。经测试,非授权用户接收方工作稳定。出现数据错位时,程序可以根据自定义的协议自动调整步伐,确保每帧数据被正确地接收。
3 软件设计
3.1 程序流程图
系统软件设计采用标准C语言在IAR开发环境下编写调试。图 6为非授权用户发送方与接收方从频率选择到发送数据的程序流程图,省略了液晶显示器部分。