WINCE6.0下RIL中多路虚拟串口的实现解读之一

710MUX多路复用驱动程序Mux07_10.dll把一路实际的物理串口虚拟成两路串口。

1。一路虚拟串口是COM7-----用于一般的AT 命令发送
2。一路虚拟串口是COM9-----用于ppp connection over CSD / GPRS

 


看对应的注册表项就可以清楚,下面的内容来自C:/WINCE600/PLATFORM/DEVICEEMULATOR/FILES/platform.reg文件


 [HKEY_LOCAL_MACHINE/Drivers/BuiltIn/RIL]
            "Dll"="rilgsm.dll"
            ;DEVFLAGS_LOADLIBRARY    0x00000002      // Use LoadLibrary instead of LoadDriver
            "Flags"=dword:2
            "Index"=dword:1
            "Order"=dword:3
            "Prefix"="RIL"               
            "ComPort"="COM7:"
            "RebootOKEvName"="Mux0710_RebootOK"    ; name of the event used to signal reboot OK
            "RebootKOEvName"="Mux0710_RebootKO"    ; name of the event used to signal reboot failure
           
        [HKEY_LOCAL_MACHINE/Drivers/BuiltIn/GSM0710_1]
            "Prefix"="COM"
            "Dll"="Mux07_10.dll"
            "DeviceArrayIndex"=dword:1
            "Index"=dword:7
            "Order"=dword:2
            ; power manager enabled device driver
            "IClass"="{A32942B7-920C-486b-B0E6-92A702A99B35}"
            ; GSM 07.10 specific
            "GSM_0710_DLCI"=dword:1   ; Rem: Dlci also define priority (lowest is low prio)
            "GSM_0710_TYPE"=dword:1   ; boolean: 1 (true) is for AT cmd, 0 (false) is for Data

        ; COM9 for ppp connection over CSD / GPRS                   
        [HKEY_LOCAL_MACHINE/Drivers/BuiltIn/GSM0710_2]
            "Prefix"="COM"
            "Dll"="Mux07_10.dll"
            "DeviceArrayIndex"=dword:1
            "Index"=dword:9
            "Order"=dword:3
            ; power manager enabled device driver
            "IClass"="{A32942B7-920C-486b-B0E6-92A702A99B35}"
            ; GSM 07.10 specific
            "GSM_0710_DLCI"=dword:2    ; Rem: Dlci also define priority (lowest is low prio)
            "GSM_0710_TYPE"=dword:1    ; boolean: 1 (true) is for AT cmd, 0 (false) is for Data

        ; COM1 for underlying GSM 07.10
        [HKEY_LOCAL_MACHINE/Software/Microsoft/GSM07_10]
            "ComPort"="COM1:"
            "BaudRate"=dword:1C200    ; 115200
            "FrameOption"=dword:1     ; Advanced


再看Mux07_10.dll驱动程序对应的注册表项,下面的内容来自C:/WINCE600/PUBLIC/CELLCORE/710MUX/mux07_10.reg


; COM7 for RIL AT command
; ----------------------------------------
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/RIL]
    "ComPort"="COM7:"
 "RebootOKEvName"="Mux0710_RebootOK"  ; name of the event used to signal reboot OK
 "RebootKOEvName"="Mux0710_RebootKO"  ; name of the event used to signal reboot failure
 
 ;Init string: $VSELECT=1|%DATA=2,"UART",0,2,"SER","UART",0,1| => handset for voice,redirect PPP data from DLCI 1 to DLCI 2
 "ComInitString"=hex:/
 24,00,56,00,53,00,45,00,4c,00,45,00,43,00,54,00,3d,00,31,00,7c,00,/
 25,00,44,00,41,00,54,00,41,00,3d,00,32,00,2c,00,22,00,55,00,41,00,52,00,54,00,22,/
 00,2c,00,30,00,2c,00,32,00,2c,00,22,00,53,00,45,00,52,00,22,00,2c,00,22,00,55,00,/
    41,00,52,00,54,00,22,00,2c,00,30,00,2c,00,31,00,7c,00,00,00
  
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/GSM0710_1]
    "Prefix"="COM"
    "Dll"="Mux07_10.dll"
    "DeviceArrayIndex"=dword:1
    "Index"=dword:7
    "Order"=dword:2

 ; power manager enabled device driver
 ;-------------------------------------
 "IClass"="{A32942B7-920C-486b-B0E6-92A702A99B35}" 

 ; GSM 07.10 specific
 ;---------------------
 "GSM_0710_DLCI"=dword:1  ; Rem: Dlci also define priority (lowest => low prio)
 "GSM_0710_TYPE"=dword:1  ; boolean: 1 (true) => AT cmd, 0 (false) => Data 

 ; monitor channel activity
 ;---------------------------
 "GSM_0710_ACTIVITY_TIMEOUT"=dword:2710  ; time-out on channel activity in ms
            ;
            ; remark:
            ; the Mux driver will notify the device
            ; when this time-out expire
            ; if there is no activity

; COM9 for ppp connection over CSD / GPRS
; ----------------------------------------
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/GSM0710_2]
    "Prefix"="COM"
    "Dll"="Mux07_10.dll"
    "DeviceArrayIndex"=dword:1
    "Index"=dword:9
    "Order"=dword:3

 ; power manager enabled device driver
 ;-------------------------------------
 "IClass"="{A32942B7-920C-486b-B0E6-92A702A99B35}" 

 ; GSM 07.10 specific
 ;---------------------
 "GSM_0710_DLCI"=dword:2  ; Rem: Dlci also define priority (lowest => low prio)
 "GSM_0710_TYPE"=dword:1  ; boolean: 1 (true) => AT cmd, 0 (false) => Data

 ; monitor channel activity
 ;---------------------------
 "GSM_0710_ACTIVITY_TIMEOUT"=dword:4E20  ; time-out on channel activity in ms
            ;
            ; remark:
            ; the Mux driver will notify the device
            ; when this time-out expire
            ; if there is no activity

; COM2 for underlying GSM 07.10
[HKEY_LOCAL_MACHINE/Software/Microsoft/GSM07_10]
    "ComPort"="COM2:"
    "BaudRate"=dword:1C200    ; 115200
    "FrameOption"=dword:1               ; 1 - Advanced; 0 -Basic
    "FrameSize"=dword:00000040          ; max data size

 

//##########################################################################################################

从上面的内容可以看出Mux07_10.dll被加载2次,虚拟出两个虚拟串口,COM7+COM9,COM7用于一般的AT命令,COM9用于ppp connection over CSD / GPRS。

但上面的两个文件的对应用到的物理串口不一样,这个是要特别注意的地方。

 ; COM1 for underlying GSM 07.10
        [HKEY_LOCAL_MACHINE/Software/Microsoft/GSM07_10]------platform.reg文件
            "ComPort"="COM1:"
            "BaudRate"=dword:1C200    ; 115200
            "FrameOption"=dword:1     ; Advanced

//----------------------------------------------------------------------------

; COM2 for underlying GSM 07.10
[HKEY_LOCAL_MACHINE/Software/Microsoft/GSM07_10]-------------mux07_10.reg
    "ComPort"="COM2:"
    "BaudRate"=dword:1C200    ; 115200
    "FrameOption"=dword:1               ; 1 - Advanced; 0 -Basic
    "FrameSize"=dword:00000040          ; max data size


注册表的统一,估计要用到编译的时候,相同的注册表项会覆盖的功能!!!-----注意底层实际的物理串口只能有一个。

看到物理串口要虚拟出两个物理串口,所以Mux07_10.dll驱动必须先于rilgsm.dll被加载,因为rilgsm.dll要用虚拟出的COM7来进行AT命令发送。
看系统编译后的reginit.ini文件就应该可以清楚最后的注册表情况,对于[HKEY_LOCAL_MACHINE/Software/Microsoft/GSM07_10]注册表项是谁覆盖了谁。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值