发明内容
本发明解决的问题是,提供一种简单的通过蓝牙模块下载数据的方法,使开发技术人员在短时间内就能开发出具有数据下载功能的蓝牙设备。
为解决上述问题,本发明提供一种通过蓝牙模块下载数据的方法,包括:
向蓝牙模块发送下载启动请求;
接收蓝牙模块返回的下载启动响应,所述下载启动响应为允许下载响应或不允许下载响应;
在接收到所述允许下载响应后,向蓝牙模块发送下载数据请求;
接收蓝牙模块返回的包含数据的下载数据响应。
可选的,所述通过蓝牙模块下载的数据为电话记录。
可选的,所述下载启动请求、下载数据请求以AT#为请求的格式前缀。
可选的,所述电话记录为电话本记录;所述发送的下载启动请求的格式为AT#PA\r\n;所述接收的下载启动响应的格式为\r\nPA<OK>\r\n或\r\nPA<ERROR>\r\n,其中<OK>表示允许下载,<ERROR>表示不允许下载;所述发送的下载数据请求的格式为AT#PB\r\n;所述接收的包含数据的下载数据响应的格式为\r\n\PB<name><string><number>\r\n,其中,<name>为电话本记录中的名称,<number>为电话本记录中的电话号码,<string>为标识字符串。
可选的,所述<OK>以0x01表示,所述<ERROR>以0x00表示。
可选的,所述<string>以0xFF表示。
可选的,所述通过蓝牙模块下载数据的方法还包括:在接收完所有的下载数据响应后,接收蓝牙模块发送的下载结束响应。
可选的,所述接收的下载结束响应的格式为\r\nPC\r\n。
可选的,所述电话记录为已拨电话记录;所述发送的下载启动请求的格式为AT#PH\r\n;所述接收的下载启动响应的格式为\r\nOK\r\n或\r\nERROR\r\n,其中OK表示允许下载,ERROR表示不允许下载;所述发送的下载数据请求的格式为AT#PK<location>\r\n,其中,<location>表示要下载的电话记录在对应的电话记录列表中的位置;所述接收的包含数据的下载数据响应的格式为\r\n D<number>\r\n,其中,<number>为对应<location>的电话号码。
可选的,所述电话记录为已接电话记录;所述发送的下载启动请求的格式为AT#PI\r\n;所述接收的下载启动响应的格式为\r\nOK\r\n或\r\nERROR\r\n,其中OK表示允许下载,ERROR表示不允许下载;所述发送的下载数据请求的格式为AT#PK<location>\r\n,其中,<location>表示要下载的电话记录在对应的电话记录列表中的位置;所述接收的包含数据的下载数据响应的格式为\r\nPD<number>\r\n,其中,<number>为对应<location>的电话号码。
可选的,所述电话记录为未接电话记录;所述发送的下载启动请求的格式为AT#PJ\r\n;所述接收的下载启动响应的格式为\r\nOK\r\n或\r\nERROR\r\n,其中OK表示允许下载,ERROR>示不允许下载;所述发送的下载数据请求的格式为AT#PK<location>\r\n,其中,<location>表示要下载的电话记录在对应的电话记录列表中的位置;所述接收的包含数据的下载数据响应的格式为\r\nPD<number>\r\n,其中,<number>为对应<location>的电话号码。
可选的,所述通过蓝牙模块下载数据的方法还包括:在接收一个下载数据响应后,接收蓝牙模块发送的已下载响应。
可选的,所述已下载响应的格式为\r\nOK>r\n。
可选的,所述通过蓝牙模块下载数据的方法还包括:若没有对应<location>的电话号码,接收蓝牙模块发送的未下载响应。
可选的,所述未下载响应的格式为\r\nERROR\r\n。
可选的,所述通过蓝牙模块下载数据的方法还包括:储存所述数据。
为解决上述问题,本发明还提供一种通过蓝牙模块下载数据的方法,其特征在于,包括:
接收蓝牙模块发送的下载启动通知;
向蓝牙模块返回下载启动响应,所述下载启动响应为允许下载响应或不允许下载响应;
在返回所述允许下载响应后,接收蓝牙模块发送的包含数据的下载数据通知。
可选的,所述通过蓝牙模块下载的数据为电话记录。
可选的,所述下载启动响应以AT#为请求的格式前缀。
可选的,所述电话记录为电话本记录;所述接收的下载启动通知的格式为\r\nPJ<address>\r\n,其中,<address>为要下载的数据所在的蓝牙设备的物理地址;所述返回的下载启动响应的格式为AT#PE\r\n或AT#PG\r\n,其中PE表示允许下载,PG表示不允许下载;所述接收的下载数据通知的格式为\r\nPK<name><string><number>\r\n,其中,<name>为电话本记录中的名称,<number>为电话本记录中的电话号码,<string>为标识字符串。
可选的,所述<string>以0xFF表示。
可选的,所述通过蓝牙模块下载数据的方法还包括:在接收一个下载数据通知后,向蓝牙模块返回已下载响应。
可选的,所述返回的已下载响应的格式为AT#PF\r\n。
可选的,所述通过蓝牙模块下载数据的方法还包括:在返回所述不允许下载响应后或在接收完所有的下载数据通知后,接收蓝牙模块发送的下载结束响应。
可选的,所述接收的下载结束响应的格式为\r\nPL\r\n。
与现有技术相比,上述技术方案通过在主机和蓝牙模块之间传送简单格式的请求、通知和响应就可以实现数据的下载,应用上述技术方案开发具有数据下载功能的蓝牙设备,相较于掌握复杂的蓝牙协议来说,开发技术人员只需掌握简单的请求、通知和响应就可以在短时间内完成蓝牙设备的数据下载功能的开发,这样也就降低了开发和设计的难度。
另外,由于蓝牙设备的主机只需发送或接收简单格式的请求、通知或响应,因而对于主机的控制器要求也不高,一般使用8位的微控制器就能实现。因此,上述技术方案具有简化设计、缩短开发时间、节约开发和设计成本、提高蓝牙设备的产品研发到市场的速度等优点。
具体实施方式
本发明实施方式通过在主机和蓝牙模块之间传送简单格式的下载启动请求、通知和响应、包含数据的下载数据通知或响应,以使蓝牙设备的主机通过嵌入式的蓝牙模块从其它蓝牙设备下载数据。
图1是本发明通过蓝牙模块下载数据的方法的一种实施方式的基本流程图,所述的下载数据是由数据的下载方发起的,所述方法包括:
步骤S11,向蓝牙模块发送下载启动请求;
步骤S12,接收蓝牙模块返回的下载启动响应,所述下载启动响应为允许下载响应或不允许下载响应;
步骤S13,在接收到所述允许下载响应后,向蓝牙模块发送下载数据请求;
步骤S14,接收蓝牙模块返回的包含数据的下载数据响应。
图2是本发明通过蓝牙模块下载数据的方法的另一种实施方式的基本流程图,所述的下载数据是由数据的发送方发起的,所述方法包括:
步骤S21,接收蓝牙模块发送的下载启动通知;
步骤S22,向蓝牙模块返回下载启动响应,所述下载启动响应为允许下载响应或不允许下载响应;
步骤S23,在返回所述允许下载响应后,接收蓝牙模块发送的包含数据的下载数据通知。
下面将以车载主机通过蓝牙模块从蓝牙手机下载电话记录为例,结合附图和实施例对本发明通过蓝牙模块下载数据的方法的具体实施方式做详细的说明。
首先需要对本发明实施例的车载主机、蓝牙模块的结构,以及与蓝牙手机的连接进行说明,请参考图3,车载主机11与蓝牙模块12构成蓝牙车载系统1。
车载主机11,用于发送预定格式的请求和响应,接收预定格式的通知。车载主机11包括主机控制器110、存储器111和通信接口112,主机控制器110通过通信接口112传送预定格式的请求和响应,并将下载的数据储存在存储器111中。存储器111用于储存下载的数据。
蓝牙模块12,用于发送预定格式的通知和响应,接收预定格式的请求;执行蓝牙协议;实现预定格式的请求、通知和响应与对应的遵循蓝牙协议的命令、响应和数据(通常是基于HCI的)的转换。蓝牙模块12包括射频收发器120、基带控制器121、缓存(Buffer)122和通信接口123。基带控制器121通过射频收发器120传送遵循蓝牙协议的命令、响应和数据,通过通信接口123传送预定格式的请求、通知和响应,并控制缓存暂时储存从蓝牙手机2接收的数据。
车载主机11和蓝牙模块12通过通信接口112、123传送预定格式的请求、通知和响应,车载主机11的通信接口112和蓝牙模块12的通信接口123遵循相同的接口协议。所述预定格式的请求、通知和响应包括GSM07.05和GSM07.07中定义的标准的AT指令(command)以及自定义的AT指令,标准的AT指令以AT为格式前缀,而自定义的AT指令以AT#为格式前缀,以区别于标准的指令格式。
蓝牙手机2可以通过蓝牙技术发送数据(例如,电话记录),蓝牙手机2也包括射频收发器(未图示)。蓝牙车载系统1的蓝牙模块12和蓝牙手机2通过蓝牙模块的射频收发器120和蓝牙手机的射频收发器传送遵循蓝牙协议的命令、响应和数据。
通常,在车载主机下载电话记录前,要先进行蓝牙车载系统的初始化,以使蓝牙模块和蓝牙手机建立连接。请参考图4,蓝牙车载系统的初始化包括:
步骤S41,向蓝牙模块发送进入配对模式(Enter Pairing Mode)命令。车载主机的主机控制器通过通信接口向蓝牙模块的基带微控制器发送格式为AT#CA\r\n的进入配对模式命令(\r\n为回车换行的转义字符),控制蓝牙模块进入蓝牙配对模式,蓝牙模块的基带控制器接收到AT#CA\r\n后,根据蓝牙模块是否成功进入配对模式,通过通信接口返回对应的进入配对模式命令响应:若蓝牙模块成功进入配对模式,则返回格式为\r\nII\r\n的进入配对模式成功响应;若蓝牙模块没有成功进入配对模式,则返回格式为\r\nIJ\r\n的进入配对模式失败响应。
步骤S42,接收蓝牙模块返回的进入配对模式命令响应。车载主机的主机控制器通过通信接口接收蓝牙模块的基带控制器返回的\r\nII\r\n或\r\nIJ\r\n。本实施例中,车载主机接收到蓝牙模块返回的\r\nII\r\n,表示蓝牙模块已进入配对模式。
步骤S43,向蓝牙模块发送连接手机(Connect to Handset)命令。车载主机的主机控制器接收到蓝牙模块的基带控制器返回的\r\nII\r\n后,通过通信接口向蓝牙模块的基带控制器发送格式为AT#CC\r\n的连接手机命令,控制蓝牙模块与蓝牙手机建立连接。蓝牙模块的基带控制器接收到AT#CC\r\n,通过射频收发器与已与蓝牙模块成功配对的蓝牙手机建立连接;蓝牙模块的基带控制器根据与蓝牙手机建立连接的情况,通过通信接口向车载主机的主机控制器返回连接手机命令响应:若蓝牙模块与蓝牙手机成功建立连接,则返回格式为\r\nIB\r\n的连接成功响应;若蓝牙模块与蓝牙手机没有建立连接,则返回格式为\r\nIA\r\n的连接失败响应。
步骤S44,接收蓝牙模块返回的连接手机命令响应。车载主机的主机控制器通过通信接口接收蓝牙模块的基带控制器返回的\r\nIB\r\n或\r\nIA\r\n。本实施例中,车载主机接收蓝牙模块返回的\r\nIB\r\n,表示蓝牙模块与蓝牙手机连接成功。
第一实施例
图5是本实施例的车载主机通过蓝牙模块从蓝牙手机下载电话本记录的流程图,其是图1所示实施方式的一个具体实例。在蓝牙模块与蓝牙手机建立连接后,首先执行步骤S51。
步骤S51,向蓝牙模块发送下载启动请求。车载主机的主机控制器通过通信接口向蓝牙模块的基带控制器发送格式为AT#PA\r\n的下载启动请求,请求下载电话本记录(Synchronize Phonebook)。蓝牙模块的基带控制器接收到AT#PA\r\n后,初始化缓存,并通过射频收发器向蓝牙手机请求下载电话本记录。蓝牙手机接收请求后,确认是否可以下载,例如是否处于空闲状态,可以向蓝牙模块传送电话本记录,然后返回对应的响应。蓝牙模块的基带控制器根据接收到的蓝牙手机返回的响应,通过通信接口向车载主机的主机控制器返回对应的下载启动响应:若蓝牙手机确认可以下载,则返回格式为\r\nPA<OK>\r\n的允许下载响应,<OK>表示允许下载,通常可以用预先定义的字符串表示,如0x01,即返回的允许下载响应为\r\nPA0x01\r\n;若蓝牙手机确认不可以下载,返回格式为\r\nPA<ERROR>\r\n的不允许下载响应,<ERROR>表示不允许下载,通常可以用预先定义的与<OK>不同的字符串表示,如0x00,即返回的不允许下载响应为\r\nPA0x00\r\n。
步骤S52,接收蓝牙模块返回的允许下载响应或不允许下载响应。车载主机的主机控制器通过通信接口接收蓝牙模块的基带控制器返回的\r\nPA0x01\r\n或\r\nPA0x00\r\n。本实施例中,车载主机接收到了蓝牙模块返回的\r\nPA0x01\r\n。
步骤S53,向蓝牙模块发送下载数据请求。车载主机的主机控制器通过通信接口向蓝牙模块的基带控制器发送格式为AT#PB\r\n的下载数据请求,请求读取一个电话本记录(Read One Phonebook Item)。蓝牙模块的基带控制器接收到AT#PB\r\n后,通过射频收发器从蓝牙手机读取一个电话本记录,包括名称和对应的电话号码,并向车载主机的主机控制器返回包含有电话本记录的下载数据响应,其格式为\r\nPB<name><string><number>\r\n,<name>为名称,<number>为电话号码,<string>为标识字符,通常可以用预先定义的字符串表示,如0xFF,即返回的下载数据响应为\r\nPB<name>0xFF<number>\r\n。
步骤S54,接收蓝牙模块返回的包含数据的下载数据响应。车载主机的主机控制器通过通信接口接收蓝牙模块的基带控制器返回的\r\nPB<name>0xFF<number>\r\n。
步骤S55,储存所述数据。本实施例中,车载主机的主机控制器可以从接收到的\r\nPB<name>0xFF<number>\r\n中提取电话本记录的内容,即<name>和<number>,并储存在车载主机的存储器中。在其他实施例中,车载主机也可以不储存下载的电话本记录,而仅将所述记录提供给显示装置予以显示。
重复步骤S53至S55,车载主机可以通过蓝牙模块从蓝牙手机顺序地(按记录在蓝牙手机的存储空间的存储位置)下载电话本记录中的所有记录。
步骤S56,在接收完所有的下载数据响应后,接收蓝牙模块发送的下载结束响应。蓝牙模块的基带控制器读取了蓝牙手机上所有的电话本记录后,通过通信接口向车载主机的主机控制器发送格式为\r\nPC\r\n的下载结束响应,结束下载电话本记录(End Synchronize Phonebook),蓝牙模块停止从蓝牙手机读取电话本记录。也就是说,车载主机的主机控制器在接收完所有的\r\nPB<name>0xFF<number>\r\n后,会接收到蓝牙模块发送的\r\nPC\r\n。
第二实施例
图6是本实施例的车载主机通过蓝牙模块从蓝牙手机下载已拨电话记录的流程图,其是图1所示实施方式的一个具体实例。在蓝牙模块与蓝牙手机建立连接后,首先执行步骤S61。
步骤S61,向蓝牙模块发送下载启动请求。车载主机的主机控制器通过通信接口向蓝牙模块的基带控制器发送格式为AT#PH\r\n的下载启动请求,请求下载已拨电话记录(Dialed Calls List)。蓝牙模块的基带控制器接收到AT#PH\r\n后,初始化缓存,并通过射频收发器向蓝牙手机请求下载已拨电话记录。蓝牙手机接收请求后,确认是否可以下载,例如是否处于空闲状态,可以向蓝牙模块传送已拨电话记录,然后返回对应的响应。蓝牙模块的基带控制器根据接收到的蓝牙手机返回的响应,通过通信接口向车载主机的主机控制器返回对应的下载启动响应:若蓝牙手机确认可以下载,则返回格式为\r\nOK\r\n的允许下载响应,OK表示允许下载;若蓝牙手机确认不可以下载,则返回格式为\r\nERROR\r\n的不允许下载响应,ERROR表示不允许下载。
步骤S62,接收蓝牙模块返回的允许下载响应或不允许下载响应。车载主机的主机控制器通过通信接口接收蓝牙模块的基带控制器返回的\r\nOK\r\n或\r\nERROR\r\n。本实施例中,车载主机接收到了蓝牙模块返回的\r\nOK\r\n。
步骤S63,向蓝牙模块发送下载数据请求。车载主机的主机控制器通过通信接口向蓝牙模块的基带控制器发送格式为AT#PK<location>\r\n的下载数据请求,请求读取一个电话记录(Read One Phonebook Entry),<location>表示要下载的电话记录在对应的电话记录列表的位置,即要下载的电话记录在已拨电话记录列表中的位置,本实施例中,<location>取01~99之间的任意一个数字。蓝牙模块的基带控制器接收到AT#PK<location>\r\n后,从蓝牙手机的已拨电话记录列表中读取对应<location>的电话号码,并向车载主机的主机控制器返回包含有电话号码的下载数据响应,其格式为\r\nPD<number>\r\n,<number>为电话号码。
步骤S64,接收蓝牙模块返回的包含数据的下载数据响应。车载主机的主机控制器通过通信接口接收蓝牙模块的基带控制器返回的\r\nPD<number>\r\n。
步骤S65,储存所述数据。本实施例中,车载主机的主机控制器从接收到的AT#PD<number>\r\n中提取电话号码,即<number>,并储存在车载主机的存储器中。
步骤S66,在接收一个下载数据响应后,接收蓝牙模块发送的已下载响应。蓝牙模块的基带控制器读取了蓝牙手机的一个电话记录后,通过通信接口向车载主机的主机控制器发送格式为\r\nOK\r\n的已下载响应,通知车载主机已下载了一个电话记录,可以下载下一个电话记录,OK表示下载成功。也就是说,车载主机的主机控制器在接收了一个\r\nPD<number>\r\n后,会接收到蓝牙模块发送的\r\nOK\r\n。另外,若在蓝牙手机上没有对应<location>的电话号码,蓝牙模块的基带控制器会通过通信接口向车载主机的主机控制器发送格式为\r\nERROR\r\n的未下载响应,通知车载主机没有对应<location>的记录。
重复步骤S63至S66,车载主机可以通过蓝牙模块从蓝牙手机下载多个已拨电话记录。
第三实施例
图7是本实施例的车载主机通过蓝牙模块从蓝牙手机下载已接电话记录的流程图,其是图1所示实施方式的一个具体实例。在蓝牙模块与蓝牙手机建立连接后,首先执行步骤S71。
步骤S71,向蓝牙模块发送下载启动请求。车载主机的主机控制器通过通信接口向蓝牙模块的基带控制器发送格式为AT#PI\r\n的下载启动请求,请求下载已接电话记录(Received Calls List)。蓝牙模块的基带控制器接收到AT#PI\r\n后,初始化缓存,并通过射频收发器向蓝牙手机请求下载已接电话记录。蓝牙手机接收请求后,确认是否可以下载,例如是否处于空闲状态,可以向蓝牙模块传送已接电话记录,然后返回对应的响应。蓝牙模块的基带控制器根据接收到的蓝牙手机返回的响应,通过通信接口向车载主机的主机控制器返回对应的下载启动响应:若蓝牙手机确认可以下载,则返回格式为\r\nOK\r\n的允许下载响应,OK表示允许下载;若蓝牙手机确认不可以下载,则返回格式为\r\nERROR\r\n的不允许下载响应,ERROR表示不允许下载。
步骤S72,接收蓝牙模块返回的允许下载响应或不允许下载响应。车载主机的主机控制器通过通信接口接收蓝牙模块的基带控制器返回的\r\nOK\r\n或\r\nERROR\r\n。本实施例中,车载主机接收到了蓝牙模块返回的\r\nOK\r\n。
步骤S73至步骤S76对应地与第二实施例中的步骤S63至步骤66基本相同,不同的是,步骤S73中,<location>表示要下载的电话记录在已接电话记录列表中的位置,蓝牙模块的基带控制器从蓝牙手机的已接电话记录列表中读取对应<location>的电话号码。
重复步骤S73至S76,车载主机可以通过蓝牙模块从蓝牙手机下载多个已接电话记录。
第四实施例
图8是本实施例的车载主机通过蓝牙模块从蓝牙手机下载未接电话记录的流程图,其是图1所示实施方式的一个具体实例。在蓝牙模块与蓝牙手机建立连接后,首先执行步骤S81。
步骤S81,向蓝牙模块发送下载启动请求。车载主机的主机控制器通过通信接口向蓝牙模块的基带控制器发送格式为AT#PJ\r\n的下载启动请求,请求下载未接电话记录(Unanswered Calls List)。蓝牙模块的基带控制器接收到AT#PJ\r\n后,初始化缓存,并通过射频收发器向蓝牙手机请求下载已接电话记录。蓝牙手机接收请求后,确认是否可以下载,例如是否处于空闲状态,可以向蓝牙模块传送未接电话记录,然后返回对应的响应。蓝牙模块的基带控制器根据接收到的蓝牙手机返回的响应,通过通信接口向车载主机的主机控制器返回对应的下载启动响应:若蓝牙手机确认可以下载,则返回格式为\r\nOK\r\n的允许下载响应,OK表示允许下载;若蓝牙手机确认不可以下载,则返回格式为\r\nERROR\r\n的不允许下载响应,ERROR表示不允许下载。
步骤S82,接收蓝牙模块返回的允许下载响应或不允许下载响应。车载主机的主机控制器通过通信接口接收蓝牙模块的基带控制器返回的\r\nOK\r\n或\r\nERROR\r\n。本实施例中,车载主机接收到了蓝牙模块返回的\r\nOK\r\n。
步骤S83至步骤S86对应地与第二实施例中的步骤S63至步骤66基本相同,不同的是,步骤S83中,<location>表示要下载的电话记录在未接电话记录列表中的位置,蓝牙模块的基带控制器从蓝牙手机的未接电话记录列表中读取对应<location>的电话号码。
重复步骤S83至S86,车载主机可以通过蓝牙模块从蓝牙手机下载多个未接电话记录。
第五实施例
图9是本实施例的车载主机通过蓝牙模块从蓝牙手机下载电话本记录的流程图,其是图2所示实施方式的一个具体实例。本实施例与第一实施例的区别在于,第一实施例的下载电话本记录是由车载主机发起的,本实施例的下载电话本记录是由蓝牙手机发起的。
在蓝牙模块与蓝牙手机建立连接后,蓝牙手机可以在任何时候选择需要下载的电话本记录(一个或多个)并通过射频收发器通知蓝牙模块的基带控制器,要求启动下载动作,即蓝牙手机要将电话本记录发送给蓝牙车载系统,蓝牙模块接收到蓝牙手机的通知后,根据蓝牙手机的物理地址(MAC地址),通过通信接口向车载主机发送格式为\r\nPJ<address>\r\n下载启动通知,<address>为蓝牙手机的物理地址。首先执行步骤S91。
步骤S91,接收蓝牙模块发送的下载启动通知。车载主机的主机控制器通过通信接口接收蓝牙模块的基带控制器发送的格式为\r\nPJ<address>\r\n下载启动通知,通知车载主机下载蓝牙手机的电话本记录。
步骤S92,向蓝牙模块返回的允许下载响应或不允许下载响应。车载主机的主机控制器接收\r\nPJ<address>\r\n后,确认是否可以下载,例如是否处于空闲状态,或者存储器是否有足够的空间储存电话本记录,然后返回对应的下载启动响应:若车载主机确认可以下载,则返回格式为AT#PE\r\n的允许下载响应,表示车载主机已准备好下载电话本记录;若车载主机确认不可以下载,则返回格式为AT#PG\r\n的不允许下载响应,表示车载主机还未准备好下载电话本记录。本实施例中,车载主机返回AT#PE\r\n。
步骤S93,接收蓝牙模块发送的包含数据的下载数据通知。蓝牙模块的基带控制器接收到AT#PE\r\n后,通过射频收发器通知蓝牙手机可以开始下载
蓝牙模块的基带控制器通过射频收发器读取了蓝牙手机发送的一个电话本记录(包括名称和对应的电话号码)后,立即通过通信接口通知车载主机的主机控制器,即发送格式为\r\nPK<name><string><number>\r\n的下载数据通知,<name>为名称,<number>为电话号码,<string>为标识字符,通常可以用预先定义的字符串表示,如0xFF,即返回的下载数据通知为\r\nPK<name>0xFF<number>\r\n。也就是说,车载主机的主机控制器通过通信接口接收蓝牙模块的基带控制器发送的格式为\r\nPK<name>0xFF<number>\r\n的下载数据通知。
步骤S94,储存所述数据。本实施例中,车载主机的主机控制器从接收到的\r\nPK<name>0xFF<number>\r\n中提取电话本记录,即<name>和<number>,并储存在车载主机的存储器中。
步骤S95,在接收一个下载数据通知后,向蓝牙模块返回已下载响应。车载主机的主机控制器接收\r\nPK<name>0xFF<number>\r\n并储存<name>和<number>后,通过通信接口向蓝牙模块的基带控制器返回格式为AT#PF\r\n的已下载响应,通知蓝牙模块可以从蓝牙手机读取下一个电话本记录。另外,本步骤中,车载主机的主机控制器储存电话本记录后,若存储器没有足够的空间储存电话本记录了,则返回的是不允许下载响应,即AT#PG\r\n。
重复步骤S93至S95,车载主机可以通过蓝牙模块从蓝牙手机连续地下载蓝牙手机所选择的需要下载的电话本记录。
步骤S96,在接收完所有的下载数据通知后,接收蓝牙模块发送的下载结束响应。蓝牙模块的基带控制器读取了蓝牙手机所选择的需要下载的所有电话本记录后,通过通信接口向车载主机的主机控制器发送格式为\r\nPL\r\n的下载结束响应,结束下载电话本记录,蓝牙模块停止从蓝牙手机读取电话本记录。也就是说,车载主机的主机控制器在接收完所有的\r\nPK<name>0xFF<number>\r\n后,会接收到蓝牙模块的基带控制器发送的\r\nPL\r\n。
另外,若步骤S92或步骤S95中,车载主机返回的是不允许下载响应,即AT#PG\r\n,则车载主机的主机控制器也会接收到蓝牙模块的基带控制器发送的\r\nPL\r\n,结束下载电话本记录。
综上所述,上述技术方案应用于开发具有数据下载功能的蓝牙设备,主机和蓝牙模块之间只需通过传送简单格式的请求、通知和响应就可以实现从其它蓝牙设备下载数据。相较于掌握复杂的蓝牙协议来说,开发技术人员只需掌握简单的请求、通知和响应就可以在短时间内完成蓝牙设备的数据下载功能的开发,这样也就降低了开发和设计的难度。
另外,由于蓝牙设备的主机只需发送或接收简单格式的请求、通知或响应,因而对于主机的控制器要求也不高,一般使用8位的微控制器就能实现。因此,上述技术方案具有简化设计、缩短开发时间、节约开发和设计成本、提高蓝牙设备的产品研发到市场的速度等优点。
本发明虽然以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本发明的保护范围应当以本发明权利要求所界定的范围为准。