一种船载自动识别系统换码收发含汉字的信息的方法

文档序号:6561161阅读:325来源:国知局
专利名称:一种船载自动识别系统换码收发含汉字的信息的方法
技术领域
本发明涉及一种船载自动识别系统换码收发含汉字的信息的方法,尤其涉及一种默认使用6位ASCII码收发信息的计算机系统换码使用含汉字代码的编码收发信息的方法,主要使用于船载自动识别系统(AIS),属于信息交换技术领域。

背景技术
船载自动识别系统(AIS)是工作在VHF海上移动频段的新兴的船舶和岸基广播系统,是促进航行安全,提高航运交通管理效率的先进工具。AIS是一种VHF无线电收发信机,它能将诸如识别码、船位、航向、航速、船舶长度、船型和货物信息等船舶信息和安全信息同其它船舶和岸上的AIS互相收发。国际电信联盟(ITU)有关文献ITU-RM.1371-1《在VHF海上移动频段采用时分多址(TDMA)技术的通用船载自动识别系统(AIS)的技术特性》对这些信息规范为消息,对其长度、信息内容和编码等作了规定,其中对消息中包含的字符数据,如船名、目的地、呼号及其它信息,规定采用该文献的6位ASCII码(见图1)互相收发。
船载自动识别系统(AIS)在中国的推广应用,需要在某些类型的消息中引进汉字代码,并在AIS间互相收发。一般计算机系统中,字符和汉字编码采用GB18030-2000《信息技术信息交换用汉字编码字符集基本集的扩充》和GB2312-1980《信息交换用汉字编码字符集基本集》标准。AIS一般采用嵌入式计算机系统,汉字编码通常采用GB2312-1980基本集6763个汉字代码,是一种含汉字代码的编码,可称之为“机内码”,即单字节即8位二进制数,最高位为“0”表示标准ASC II码,双字节即16位二进制数,两个字节最高位都为“1”表示基本集的汉字代码。如果去掉这两个字节最高位的“1”,剩下的14位汉字代码,也是一种含汉字代码的编码。
但是,考查ITU规定AIS使用的如图1所示的6位ASCII码字符集,显然它不含汉字代码,并且所有6位代码都有字符定义而且不含表示“换码”的特别代码。因此,船载自动识别系统(AIS)无法直接使用计算机系统拥有的含汉字代码的编码来收发信息。


发明内容
本发明的目的是发明一种使船载自动识别系统(AIS)在中国的推广应用中,换码用含汉字代码的编码来收发信息的方法。
为实现以上目的,本发明的技术方案是提供一种船载自动识别系统换码收发含汉字的信息的方法,使用于船载自动识别系统的计算机,该计算机拥有含汉字代码的编码,其特征在于,采用收发双方约定的字符组合作为换码特征码,使默认使用6位ASCII码收发信息的船载自动识别系统,知道以下收发的是含汉字代码的编码;其方法为 步骤1定义换码特征码 船载自动识别系统以收发双方约定的字符组合作为换码特征码,让收发双方知道以下收发的是含汉字代码的编码,该字符组合在6位ASCII字符码和8位标准ASCII字符码的对照表中的6位ASCII码字符集中选取; 步骤2收发双方约定 1)船载自动识别系统收发消息时,其初始字符编码默认采用6位ASCII字符码和8位标准ASCII字符码的对照表中的6位ASCII码; 2)当且仅当收发换码特征码后,船载自动识别系统收发的字符编码采用含汉字代码的编码。
船载自动识别系统初始默认使用6位ASCII码收发信息,按照本发明的换码方法收发换码特征码后,收发双方就知道了以下收发的是含汉字代码的编码而不是6位ASCII码,这样,船载自动识别系统就能使用其计算机拥有的含汉字代码的编码来收发信息了。
本发明的优点是,采用收发双方约定的字符组合作为换码特征码,使默认使用6位ASCII码收发信息的船载自动识别系统,知道以下收发的是含汉字代码的编码,这样,船载自动识别系统在中国的推广应用中,应用本发明可以实现收发汉字信息。



图1为ITU-RM.1371-1《在VHF海上移动频段采用时分多址(TDMA)技术的通用船载自动识别系统(AIS)的技术特性》中的表14,是6位ASCII字符码和8位标准ASCII字符码的对照表。

具体实施例方式 下面使用计算机编程语言C编写程序,给出船载自动识别系统(AIS)在中国的推广应用中,用计算机实现本发明的换码方法,使船载自动识别系统用含汉字代码的编码收发信息,其中一种较佳的实施方式如下 程序中收发双方约定字符组合“&&&”作为换码特征码,约定以一般计算机系统中的“机内码”作为含汉字代码的编码。函数send和receive实施了本发明的方法;其它函数与本发明关系不大,故程序略。
unsigned char sendData[60];//要发送的机内码。
unsigned char receiveData[60];//收到的已转换的机内码。
void send_6bit(unsigned char y);//将y的低6位送入发送数据区,程序略。
void send_bit(unsigned char y);//将y送入发送数据区,程序略。
unsigned char receive_6bit();//从接收数据区取6位值作为返回值,程序略。
unsigned char receive_8bit();//从接收数据区取8位值作为返回值,程序略。
/*-------------------------------------------------------- ** 函数名send **功能将数组sendData中的机内码转换为默认的6位ASCII码,送入发送数据区; 直至发送了换码特征码后,将数组sendData中包含汉字和ASCII字符的机内码,直接送入发送数据区,供发送操作。
**输入sn,要转换的数组元素个数; 数组sendData,元素是机内码。
**输出函数send_6bit(c),把默认的6位ASCII码送入发送数据区; 函数send_8bit(c),把机内码送入发送数据区。-------------------------------------------------------------*/void send(sn)unsigned char sn;{unsigned char i,x1,escN,esc;<!-- SIPO <DP n="3"> --><dp n="d3"/>i=0;escN=0;//特征字符计数清0。esc=0; //esc若为0x1b,换码特征码有效;0,无效。while(i<sn) //循环直至(sn)个。{x1=sendData[i];//x1取机内码。i++;if(esc==0){//换码特征码无效,x1按图1转换为默认的6位ASCII码。x1=x1&amp;0x7f;if(x1>=0x40)x1=x1-0x40;send_6bit(x1); //把6位ASCII码送入发送数据区。if(x1==0x26) //0x26为&amp;,监视是否发送连续3个&amp;即换码特征码。{ //若发送连续3个&amp;,即″&amp;&amp;&amp;″,则esc=0x1b,置换码特征码有效。escN++;if(escN>=3)esc=0x1b;}else escN=0;//否则,escN清0重计。}else send_8bit(x1);//换码特征码有效,x1机内码直接送入发送数据区。}//循环直至(sn)个。}/*---------------------------------------------------------------**函数名receive**功能将接收的默认6位ASCII码转换为机内码,送入数组receiveData;直至接收了换码特征码后,将接收的包含汉字和ASCII字符的机内码,直接送入数组receiveData。**输入rn,接收数据区6位ASCII码和8位机内码总数;函数receive_6bit(),从接收数据区取默认的6位ASCII码;<!-- SIPO <DP n="4"> --><dp n="d4"/>函数receive_8bit(),从接收数据区取8位机内码。**输出数组receiveData。-------------------------------------------------------*/void receive(rn)unsigned char rn;{unsigned char i,y1,escN,esc;i=0;escN=0; //特征字符计数清0。esc=0;//esc若为0x1b,换码特征码有效;0,无效。while(i<rn) //循环直至(rn)个。{if(esc==0){ //换码特征码无效,默认的6位ASCII码按图1转换为机内码(ASCII码)。y1=receive_6bit()&amp;0x3f;//y1从接收数据区取默认的6位ASCII码。if(y1<0x20)y1=y1+0x40;//转换为机内码(标准ASCII码)。receiveData[i]=y1;//机内码送入数组receiveData。i++;if(y1==0x26)//0x26为&amp;,监视是否收到连续3个&amp;即换码特征码。{ //若收到连续3个&amp;,即″&amp;&amp;&amp;″,则esc=0x1b,置换码特征码有效。escN++;if(escN>=3)esc=0x1b;}else escN=0;//否则,escN清0重计。}else{ //换码特征码有效,机内码直接送入数组receiveData。y1=receive_8bit();//y1从接收数据区取8位机内码。receiveData[i]=y1;//直接送入数组receiveData。<!-- SIPO <DP n="5"> --><dp n="d5"/>i++;}}//循环直至(rn)个。}
权利要求
1.一种船载自动识别系统换码收发含汉字的信息的方法,使用于船载自动识别系统的计算机,该计算机拥有含汉字代码的编码,其特征在于,采用收发双方约定的字符组合作为换码特征码,使默认使用6位ASCII码收发信息的船载自动识别系统,知道以下收发的是含汉字代码的编码;其方法为
步骤1定义换码特征码
船载自动识别系统以收发双方约定的字符组合作为换码特征码,让收发双方知道以下收发的是含汉字代码的编码,该字符组合在6位ASCII字符码和8位标准ASCII字符码的对照表中的6位ASCII码字符集中选取;
步骤2收发双方约定
1)船载自动识别系统收发消息时,其初始字符编码默认采用6位ASCII字符码和8位标准ASCII字符码的对照表中的6位ASCII码;
2)当且仅当收发换码特征码后,船载自动识别系统收发的字符编码采用含汉字代码的编码。
全文摘要
本发明提供一种船载自动识别系统换码收发含汉字的信息的方法,其特征在于,采用收发双方约定的字符组合作为换码特征码,使默认使用6位ASCII码收发信息的船载自动识别系统,知道以下收发的是含汉字代码的编码。这样,船载自动识别系统在中国的推广应用中,应用本发明可以实现收发汉字信息。本发明属于信息交换技术领域。
文档编号G06F17/28GK1941751SQ20061011688
公开日2007年4月4日 申请日期2006年10月8日 优先权日2006年10月8日
发明者夏华龙, 刘志磊, 赵东锋 申请人:上海埃威航空电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1