Multiplexer Driver Developer’s Guide (Windows XP/2000) Siemens Cellular Engines Version: DocId: 07 Mux_Drv_DevGuide_v07 User’s Guide s
s Multiplexer Driver Developer’s Guide Document Name: Multiplexer Driver Developer’s Guide Version: 07 Date: 2006-9-27 DocId: Mux_Drv_DevGuide_v07 Status Confidential / Released General Notes Product is deemed accepted by recipient and is provided without interface to recipient’s products. The documentation and/or product are provided for testing, evaluation, integration and information purposes.
s Multiplexer Driver Developer’s Guide Contents Contents 0 Document History.................................................................................................................................... 7 1 Introduction.............................................................................................................................................. 9 1.1 Supported Product Versions .........................................................................................................
s Multiplexer Driver Developer’s Guide Contents 8.2 8.3 8.4 8.5 8.6 8.7 Shutdown of the Operating System............................................................................................... 35 Standby of the Operating System ................................................................................................. 35 Wake on Ring................................................................................................................................ 35 Special Environments.........
s Multiplexer Driver Developer’s Guide List of Tables Tables Table 1: Table 2: Table 3: Table 4: Table 5: Table 6: Table 7: Physical serial port...................................................................................................................... 13 Virtual serial port with Multiplexer Protocol version 2 ................................................................. 14 Virtual serial port with Multiplexer Protocol version 3 ..............................................................
s Multiplexer Driver Developer’s Guide List of Figures Figures Figure 1: Figure 2: Figure 3: Figure 4: Figure 5: Figure 6: Figure 7: Figure 8: Figure 9: Figure 10: Driver architecture ..................................................................................................................... Serial Multiplexer Properties page............................................................................................. Interaction of the different driver objects....................................
s Multiplexer Driver Developer’s Guide 0 Document History 0 Document History Preceding document: "Multiplexer Driver Developer’s Guide", Version 06 New document: "Multiplexer Driver Developer’s Guide" Version 07 Chapter What is new 1.1 Enhanced list of supported products. 4.2 Table 6: Added optional Registry values supported as of Multiplexer Protocol version 4. Table 7: Added value 0x0002 0000 Frame information, HDLC. 6.1, 6.2 Updated requirements for Windows environment.
s Multiplexer Driver Developer’s Guide Preceding document: "Multiplexer Driver Developer’s Guide", Version 02 New document: "Multiplexer Driver Developer’s Guide" Version 03 Chapter What is new 1.1, 1.2 Updated list of supported products and information about version control. Throughout manual Complete revision of all chapters. Added information specific to TC35i and TC45. Updated Description of Registry values.
s Multiplexer Driver Developer’s Guide 1 Introduction 1 Introduction The multiplex mode according to the ETSI TS 101 369, GSM 07.10 Multiplexer Protocol enables one physical serial interface to be partitioned into three virtual channels. This allows you to take advantage of three simultaneous sessions running on one serial interface. For example, you can send or receive data on the first channel, while the other two channels are free to control the GSM/GPRS engine with AT commands.
s Multiplexer Driver Developer’s Guide 1.1 Supported Product Versions 1.1 Supported Product Versions Please note that this User’s Guide covers the three different versions of the Multiplexer Protocol. The following products support the Siemens Multiplexer Protocol version 2: • • • TC35, TC35 Terminal and TC37 from Release 03.10 MC35 from Release 03.
s Multiplexer Driver Developer’s Guide 1.2 Related Documents 1.2 Related Documents [1] 3G TS 27.010, 3rd Generation Partnership Project; Technical Specification Group Terminals; Terminal Equipment to Mobile Station (TE-MS) multiplexer protocol [2] Digital Cellular Telecommunications Systems (Phase 2+); Terminal Equipment to Mobile Station (TE-MS) “Multiplexer Protocol”; ETSI TS 101 369 V7.1.0 (1999-11), GSM 07.10 Version 7.1.
s Multiplexer Driver Developer’s Guide 2 Architecture 2 Architecture 2.1 Hierarchy Chart in the System Sessions running simultaneously Fax application data transfers channel 1 (COM10) SMS functions channel 2 (COM 11) Read battery status channel 3 (COM 12) File object for virtual COM port File object for virtual COM port Terminal COM1 direct connection User File object for virtual COM port File object for physical COM1 port Device object "winmux2k.sys" Multiplexer Protocol GSM 07.
s Multiplexer Driver Developer’s Guide 2.2 Handling of the Physical Serial Port Figure 1 shows the driver architecture of winmux2k.sys in the operating system. The device driver winmux2k.sys emulates virtual serial ports. The lower layer of the WinMux2k driver is the physical serial port driver (serial.sys). The WinMux2k driver is loaded during system startup. It creates virtual port objects. The physical port is opened, when the first virtual port is opened by an application.
Multiplexer Driver Developer’s Guide 2.4 Handling of Control Lines on Virtual Ports 2.4 s Handling of Control Lines on Virtual Ports Summary of control line handling.
s Multiplexer Driver Developer’s Guide 2.6 Module Initializing Sequence 2.6 Module Initializing Sequence Due to different requirements of the supported products the initialization sequence varies with the module type. This means that when you migrate to another module type you are required to uninstall the driver and reinstall it with the new module. The settings are taken from the winmux2k.inf file. The tables below list the commands sent to the module during the initialization.
s Multiplexer Driver Developer’s Guide 2.7 Module Re-initialization 2.7 Module Re-initialization If the module is disconnected or powered off during normal operation, the driver detects this and tries to reinitialize the module. Because the module state can be changed while disconnected the multiplexer mode has to be completely initialized. The driver checks the following situations: • • • Invalid frames from the module are received. Timeout occurs during sending frames.
s Multiplexer Driver Developer’s Guide 2.8 Power Down 2.8.3 Power Down on PC Shutdown When the PC is shut down, the multiplexer mode is turned off and the strings from the Registry value “ShutDown” are sent to the module, if a virtual port is in use. Note: During shutdown, some PCs may generate an impulse on the lines of the serial interface.
s Multiplexer Driver Developer’s Guide 3 Installation 3 Installation 3.1 Files Required for WinMux2k Driver Installation Table 5: Required driver files File Comment Wmuxinst.exe WinMux2k driver installation program Winmux2k.inf INF file for the WinMux2k driver. It contains all driver settings and module specific settings stored in the Windows Registry during the installation. See Section 4.2 for further details on the Registry. Winmux2k.sys Device driver image Wmuxprop.
s Multiplexer Driver Developer’s Guide 3.3 Deinstalling the Driver 3.3 Deinstalling the Driver In order to uninstall the Windows Multiplexer Driver perform the following steps: Windows 2000 1 Start the Control Panel. 2 Select System. 3 Select the Hardware property sheet. 4 Double click the Device Manager button. 5 Under Multi-port serial adapters right click Serial Multiplexer. 6 Choose Uninstall Driver and answer the confirm dialog with yes to finally uninstall the driver.
s Multiplexer Driver Developer’s Guide 4 Device Settings and Properties 4 Device Settings and Properties 4.1 Settings on the Serial Multiplexer Properties Page From the Serial Multiplexer Properties page (see Section 3.3 for details where to find the page) select the Port Settings tab. The baud rate used on the physical serial port can be changed individually.
s Multiplexer Driver Developer’s Guide 4.2 Settings Stored in the Windows Registry 4.2 Settings Stored in the Windows Registry The WinMux2k driver parameters are located in the registry path HKLM\System\CurrentControlSet\Enum\Root\winmux\000X\Device Parameters. X is the number of the device instance. All values listed below will be created during the installation of the WinMux2k driver. The settings are provided by the winmux2k.inf file.
s Multiplexer Driver Developer’s Guide 4.2 Settings Stored in the Windows Registry Table 6: Registry values Value Data (Example) Properties ReinitOnDSR 1 0 Default for XC18 The driver does not try to reconnect to the module if DSR changes. This feature can be switched off if an application controls the DSR line with AT&S. 1 Default for all modules except XC18 The driver tries to reconnect to the module if DSR changes.
s Multiplexer Driver Developer’s Guide 4.2 Settings Stored in the Windows Registry Table 6: Registry values Value Data (Example) Properties Optional values supported as of Multiplexer Protocol version 4, i.e. supported by the WinMux2k driver version 3.000 or later. The following optional values can be manually added to the Registry when needed. MaxMuxVersion 3 This registry value provides the possibility to force the driver to use a lower multiplex protocol version than the maximum supported.
s Multiplexer Driver Developer’s Guide 4.2 Settings Stored in the Windows Registry The following Registry values in the path HKLM \System\CurrentControlSet\Services\winmux2k\Parameters are used to configure the TRACE outputs. These values are only valid for the debug version of the device driver. Table 7: Registry values for trace outputs Values Data (Example) Properties DebugBaud 57600 Baud rate: used if DebugPort is different from 0.
s Multiplexer Driver Developer’s Guide 5 Settings for Applications 5 Settings for Applications 5.1 Dial-up Network Settings The dial-up network settings must be configured according to the requirements of the network provider. The WinMux2k driver has no special requirements. 5.2 Fax Settings There are no special settings for the fax service of the operating systems. Note: If the fax service is enabled for receiving fax messages, the virtual port is opened all the time.
s Multiplexer Driver Developer’s Guide 6 Translate Source Code 6 Translate Source Code 6.1 Software Requirements The WinMux build environment has been designed to work together with a Microsoft Visual Studio 6.0 SP3 or higher and the Microsoft Windows XP SP1 DDK. It is possible to use a Windows 2000 DDK as well, but in this case adaptations to the different build control files might be necessary. 6.
s Multiplexer Driver Developer’s Guide 7 Additional Source Documentation 7 Additional Source Documentation This chapter contains additional flow charts and state diagrams which give more detailed information on the structure and the content of the sources. 7.1 Interaction of the Different Driver Objects Object chart of the device driver winmux2k.
s Multiplexer Driver Developer’s Guide 7.2 Internal Driver States 7.2 Internal Driver States SerMux internal states STATE_CLOSE_ DOWN initial state rcv. a DM-Frame send a SABM-Frame STATE_ DISCONNECT STATE_ DISCONNECT REQUEST WrConnectPort() send aSABM-Frame rcv. a DM (Disconnect) Frame WrConnectPort() send a SABM-Frame WrDisconnectPort(), send a DISC-Frame STATE_ VERSION_ERROR this state exists only for port 0 STATE_ CONNECT STATE_ CONNECT_ REQUEST rcv.
s Multiplexer Driver Developer’s Guide 7.3 Buffer Handling 7.
s Multiplexer Driver Developer’s Guide 7.4 Data Transfer 7.4 7.4.
s Multiplexer Driver Developer’s Guide 7.4 Data Transfer 7.4.
s Multiplexer Driver Developer’s Guide 7.4 Data Transfer 7.4.3 SerMuxSend Function The figure shows the flow diagram of the SerMuxSend function which sends the data to the module.
s Multiplexer Driver Developer’s Guide 7.4 Data Transfer Send function from the virtual Communication Ports (the SerPort Object) Function SerMuxSend() only sends UIH-Frames (unnumbered information) which come in from WriteRequest to the virtual serial communication port.
s Multiplexer Driver Developer’s Guide 7.5 The +++-Parser 7.5 The +++-Parser The following state diagram shows the states of the +++-parser. Internal states of the ScanRequest Object for scanning each character in a Send Request for one Port Object if BreakCount > 0, then send first the breaks. After check for incoming Request also check if Break Count>0 and then '+' characters. W AIT_CHAR() Timeout 1s and rcv. BreakChar '+' SerMuxSend(), BreakCount=0 If rcv. a SendRequest, then Flag = SCAN_LATER rcv.
s Multiplexer Driver Developer’s Guide 8 Known Problems 8 Known Problems 8.1 Booting Operating System Windows 2000 and Windows XP toggle the signals of the serial interfaces. As a result, the module will be switched on, even if the WinMux2 driver is not active. The driver accesses the connected module only when the virtual ports are accessed. If the WinMux2k driver is used by accessing one or more of the virtual ports, it switches off the module when the last virtual port is closed again.
s Multiplexer Driver Developer’s Guide 8.5 Special Environments 8.5 Special Environments The driver expects a module connected to the COM port in a way where the ignition signal to start the module is connected with the DTR signal of the COM port so that the driver is able to switch the module on via the DTR signal. If the driver is used for modules built into environments where this connection does not exist (e.g. like laptops with a hard mounted module) it cannot power on the module.