手机软件与串口通信!
说到手机软件,必须先了解一下串口通信的基本原理,目前市面上的手机软件,可以说99%以上,是用串口进行通信的,因为串口通信协议简单,占用资源少,如果利用高速串口芯片,速度可达921600bps/s。理论值相当于115K byte/s 已经是相当快的速度了。
串口通信相比于其它的通信方式:
并口通信需要的IO口线很多,如8位通信就要最基本的8根IO口,还有其它握手信号等,
占用的资源很多,明显不适用。所以,电脑上的并口,基本上只传为软件狗其它仪器的通信。
USB通信,随着科技的发展,USB的通信绝对是会普及,比如MP3和MP4等需要大容量存储的时候,USB通信技术更显优势,但是USB速度快的背后,也存在着很多问题,比如协议复杂,通信环境要求较高,相对的成本也就提高了。
串口通信中的一个重要参数--波特率,单位是比特/秒,指通信的速度。如115200的波特率,就是说每秒钟发送115200比特位,相当于14.4K 字节/S,而更高的波特率如921600的波特率,就是115.2K 字节/S 但这些都是理论值,实际应用中除去开始位,停止位和校验位,以115200的波特率,想当于每秒10K左右。
假如手机字库资料是8M字节,使用115200的波特率来传输,需要的时间是:
0x800000 / (115200/8)=582秒 大约需要9分钟时间 (理论值)
如果使用921600波特率,那里需要的时间是72秒 (理论值)
但实际的传输过程中,需要的时间远远不止这些。如果没有用到其它的一些握手信号,比如RTS,CTS,DTR,DSR等信号,单靠软件通信来握手,时间可能会更慢。
所以说,串口通信的波特率,是决定串口通信速度的一个重要因素!
有些网友说过,用高速串口刷机不可靠,原因是速度太快了不稳定。其实这说法有点不对,高速串口的实现,目前有二种方法,一种是靠软件来提速,另一种是使用高速串口芯片。
对于第一种使用软件来提速,我也有看过相关的软件,他的实现原理是通过替换掉Windows系统的串口库来达到提速的目的,当然软件也要查看电脑主板的频率,因为不同电脑不板是不同的。因此,使用这种方法并非每台电脑都可以使用,而且在使用过程中存在不稳定因素。
第二种是使用硬件提速,准确点来说不能说是提速,应说是标准的串口芯片,如常见的(PL2303),只是针对电脑的串口速度115200而言,他是高速了。他的实现原理是通过USB协议转换成标准的串口协议。所以速度可以比115200快出N倍,目前已经有芯片的速度达到了3M,是115200的26倍。
所以,使用串口专用芯片来提高串口通信速度,是很可靠的。
手机软件与电脑通信的握手设计,常规的有二种:(仅指刷机软件)
一种是主动,另一种是被动。
主动方式即手机一开机,就会发一些命令或数据给电脑,电脑识别之后,发送某些特定的命令给手机,使手机进入编程状态。
被动方式是指电脑一直循环发送某些特定的命令,手机在开机的时候,会优先扫描串口,看是否有数据要使他进入编程状态的,如果有则进入,没有则开机。
小知识:手机软件的刷机,通常都必须在手机关机的情况下,因为刷机就是擦写字库的操作。当然也有一些非常规的方式,比如一些CDMA的手机,是要在开机的状态下接受命令。
关于手机通信的速度 有些手机是不允许使用高速传输,原因是手机通信协议的限定,手机传输的速度和软件设计有关,同时和手机硬件业有关
同型号的手机,可能升级的时间不一样,因为手机传输通信,有效验过程,当写入数据后,会返回效验数据,正确后写入下一条,否则重写。。。产生的原因是 flash芯片老化 损坏 通信接口电路滤波不好。杂散干扰
为什么我的手机高速刷机不成功? 虽然有的手机可以进行高速刷机,但手机设计时没有考虑高速通信支持,所以会有一些bug,厂方设计规范支持高速通信的就不会出现这些问题
手机传输通信的质量 不仅仅取决于 手机通信接口 软件设计 和 外部的通信电路 电缆 计算机 都是有至关重要的因素,这就是同样的手机 在不同的电脑 环境 可能支持实际的传输速率差别很大
PS:不对之处还请指正!
USB是未来发展的趋势,只是可惜USB技术成本较贵,而且对于通信环境要求较高
说到手机软件,必须先了解一下串口通信的基本原理,目前市面上的手机软件,可以说99%以上,是用串口进行通信的,因为串口通信协议简单,占用资源少,如果利用高速串口芯片,速度可达921600bps/s。理论值相当于115K byte/s 已经是相当快的速度了。
串口通信相比于其它的通信方式:
并口通信需要的IO口线很多,如8位通信就要最基本的8根IO口,还有其它握手信号等,
占用的资源很多,明显不适用。所以,电脑上的并口,基本上只传为软件狗其它仪器的通信。
USB通信,随着科技的发展,USB的通信绝对是会普及,比如MP3和MP4等需要大容量存储的时候,USB通信技术更显优势,但是USB速度快的背后,也存在着很多问题,比如协议复杂,通信环境要求较高,相对的成本也就提高了。
串口通信中的一个重要参数--波特率,单位是比特/秒,指通信的速度。如115200的波特率,就是说每秒钟发送115200比特位,相当于14.4K 字节/S,而更高的波特率如921600的波特率,就是115.2K 字节/S 但这些都是理论值,实际应用中除去开始位,停止位和校验位,以115200的波特率,想当于每秒10K左右。
假如手机字库资料是8M字节,使用115200的波特率来传输,需要的时间是:
0x800000 / (115200/8)=582秒 大约需要9分钟时间 (理论值)
如果使用921600波特率,那里需要的时间是72秒 (理论值)
但实际的传输过程中,需要的时间远远不止这些。如果没有用到其它的一些握手信号,比如RTS,CTS,DTR,DSR等信号,单靠软件通信来握手,时间可能会更慢。
所以说,串口通信的波特率,是决定串口通信速度的一个重要因素!
有些网友说过,用高速串口刷机不可靠,原因是速度太快了不稳定。其实这说法有点不对,高速串口的实现,目前有二种方法,一种是靠软件来提速,另一种是使用高速串口芯片。
对于第一种使用软件来提速,我也有看过相关的软件,他的实现原理是通过替换掉Windows系统的串口库来达到提速的目的,当然软件也要查看电脑主板的频率,因为不同电脑不板是不同的。因此,使用这种方法并非每台电脑都可以使用,而且在使用过程中存在不稳定因素。
第二种是使用硬件提速,准确点来说不能说是提速,应说是标准的串口芯片,如常见的(PL2303),只是针对电脑的串口速度115200而言,他是高速了。他的实现原理是通过USB协议转换成标准的串口协议。所以速度可以比115200快出N倍,目前已经有芯片的速度达到了3M,是115200的26倍。
所以,使用串口专用芯片来提高串口通信速度,是很可靠的。
手机软件与电脑通信的握手设计,常规的有二种:(仅指刷机软件)
一种是主动,另一种是被动。
主动方式即手机一开机,就会发一些命令或数据给电脑,电脑识别之后,发送某些特定的命令给手机,使手机进入编程状态。
被动方式是指电脑一直循环发送某些特定的命令,手机在开机的时候,会优先扫描串口,看是否有数据要使他进入编程状态的,如果有则进入,没有则开机。
小知识:手机软件的刷机,通常都必须在手机关机的情况下,因为刷机就是擦写字库的操作。当然也有一些非常规的方式,比如一些CDMA的手机,是要在开机的状态下接受命令。
关于手机通信的速度 有些手机是不允许使用高速传输,原因是手机通信协议的限定,手机传输的速度和软件设计有关,同时和手机硬件业有关
同型号的手机,可能升级的时间不一样,因为手机传输通信,有效验过程,当写入数据后,会返回效验数据,正确后写入下一条,否则重写。。。产生的原因是 flash芯片老化 损坏 通信接口电路滤波不好。杂散干扰
为什么我的手机高速刷机不成功? 虽然有的手机可以进行高速刷机,但手机设计时没有考虑高速通信支持,所以会有一些bug,厂方设计规范支持高速通信的就不会出现这些问题
手机传输通信的质量 不仅仅取决于 手机通信接口 软件设计 和 外部的通信电路 电缆 计算机 都是有至关重要的因素,这就是同样的手机 在不同的电脑 环境 可能支持实际的传输速率差别很大
PS:不对之处还请指正!
USB是未来发展的趋势,只是可惜USB技术成本较贵,而且对于通信环境要求较高