CN103092802A - 一种读卡器与上位机通信的方法 - Google Patents
一种读卡器与上位机通信的方法 Download PDFInfo
- Publication number
- CN103092802A CN103092802A CN2013100498934A CN201310049893A CN103092802A CN 103092802 A CN103092802 A CN 103092802A CN 2013100498934 A CN2013100498934 A CN 2013100498934A CN 201310049893 A CN201310049893 A CN 201310049893A CN 103092802 A CN103092802 A CN 103092802A
- Authority
- CN
- China
- Prior art keywords
- identifier
- bluetooth
- usb
- interrupt
- channel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000006854 communication Effects 0.000 title claims abstract description 134
- 238000004891 communication Methods 0.000 title claims abstract description 133
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000004044 response Effects 0.000 claims abstract description 99
- 230000007958 sleep Effects 0.000 claims description 172
- 238000003780 insertion Methods 0.000 claims description 78
- 230000037431 insertion Effects 0.000 claims description 78
- 230000005059 dormancy Effects 0.000 claims description 59
- 238000012545 processing Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4081—Live connection to bus, e.g. hot-plugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0853—Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开一种读卡器与上位机通信的方法,涉及通信领域,为解决现有技术中的读卡器无法通过USB端口与不同型号的移动设备进行通信的问题而发明。该方法包括,读卡器系统初始化,打开中断;判断中断标识类型,如是蓝牙通信中断标识置位或USB通信中断标识置位,接收指令并保存指令对应的通道标识,根据指令类型执行相应操作,向上位机发送相应的响应,清除蓝牙通信中断标识或USB通信中断标识;如是其他中断标识,则根据中断标识类型执行相应操作。
Description
技术领域
本发明涉及通信领域,特别是涉及一种读卡器及其与上位机通信的方法。
背景技术
随着科技的发展,移动设备的应用越来越广泛。由于移动设备的特殊性,各个厂家移动设备的硬件接口各不相同,目前不存在统一的USB接口,无法通过USB端口与不同型号的移动设备进行通信。
发明内容
为解决现有技术存在的缺陷,本发明提供了一种读卡器与上位机通信的方法。
一种读卡器与上位机通信的方法,包括,
步骤A:读卡器系统初始化,打开插卡中断和/或拔卡中断和/或插USB中断和/或拔USB中断和/或蓝牙连接中断和/或蓝牙断开中断和/或USB通信中断和/或蓝牙通信中断;
步骤B:判断工作电压是否低于预设值,是,提示低电压状态,若所述低电压状态超过第一预设时间,则关闭所述读卡器;否,返回步骤B;
在以上过程中还包括,
当所述读卡器收到USB通信中断信号时,进入所述USB通信中断,通过USB通道接收指令,根据收到的所述指令执行相应操作,并将操作结果通过所述USB通道返回给上位机;和/或
当所述读卡器收到蓝牙通信中断信号时,进入所述蓝牙通信中断,通过蓝牙通道接收指令,根据收到的所述指令执行相应操作,并将操作结果通过所述蓝牙通道返回给所述上位机;和/或
当所述读卡器收到插USB中断信号时,进入所述插USB中断,将USB通道连接标识置位;和/或
当所述读卡器收到拔USB中断信号时,进入所述拔USB中断,将所述USB通道连接标识复位;和/或
当所述读卡器收到蓝牙连接中断信号时,进入所述蓝牙连接中断,将蓝牙通道连接标识置位;和/或
当所述读卡器收到蓝牙断开中断信号时,进入所述蓝牙断开中断,将所述蓝牙通道连接标识复位;和/或
当所述读卡器收到插卡中断信号时,进入所述插卡中断,设置卡槽状态标识为有卡标识;和/或
当所述读卡器收到拔卡中断信号时,进入所述拔卡中断,设置所述卡槽状态标识为无卡标识。
所述步骤A与步骤B之间包括:
步骤B1:读取蓝牙模块的参数,判断是否读取成功,是,将所述蓝牙模块切换至连接状态,执行步骤B;否,将USB通道标识置位,执行步骤B;或者,
步骤B2:读取蓝牙模块的参数,判断是否读取成功,是,将所述蓝牙模块切换至连接状态,执行步骤B;否,返回步骤B2。
所述进入所述插USB中断,将USB通道连接标识置位,具体包括:
进入所述插USB中断,判断休眠标识是否置位,是,将所述休眠标识复位,MCU被唤醒,打开USB通道使能,将所述USB通道连接标识置位,退出所述插USB中断;否,打开所述USB通道使能,将所述USB通道连接标识置位,退出所述插USB中断;
所述进入所述拔USB中断,将所述USB通道连接标识复位,具体包括:
进入拔USB中断,判断蓝牙通道连接标识是否置位,是,关闭所述USB通道使能,将所述USB通道连接标识复位,退出所述拔USB中断;否,关闭所述USB通道使能,将所述USB通道连接标识复位,将所述休眠标识置位,所述MCU休眠,退出所述拔USB中断;
所述进入蓝牙连接中断,将蓝牙通道连接标识置位,具体包括:
进入所述蓝牙连接中断,判断所述休眠标识是否置位,是,将所述休眠标识复位,所述MCU被唤醒,打开蓝牙通道使能,将蓝牙通道连接标识置位,退出所述蓝牙连接中断;否,打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,退出所述蓝牙连接中断;
所述进入所述蓝牙断开中断,将蓝牙通道连接标识复位,具体包括:
进入所述蓝牙断开中断,判断所述USB通道连接标识是否置位,是,关闭所述蓝牙通道使能,将所述蓝牙通道连接标识复位,退出所述蓝牙断开中断;否,关闭所述蓝牙通道使能,将所述蓝牙通道连接标识复位,将所述休眠标识置位,所述MCU休眠,退出所述蓝牙断开中断。
所述步骤B中判断为否时返回步骤B之前,还包括步骤C,
步骤C:检测所述读卡器与所述上位机的连接方式;
如果所述读卡器是通过USB端口与所述上位机连接,则所述读卡器将所述USB通道连接标识置位,返回步骤B;如果所述读卡器是通过蓝牙模块与上位机连接,将所述蓝牙通道连接标识置位,返回步骤B;
所述进入所述插USB中断,将USB通道连接标识置位,具体包括:
进入所述插USB中断,判断所述休眠标识是否置位,若所述休眠标识置位,将所述休眠标识复位,MCU被唤醒,打开USB通道使能,将所述USB通道连接标识置位,关闭蓝牙连接中断使能,判断所述蓝牙通道连接标识是否置位,若所述蓝牙通道连接标识置位,则将所述蓝牙通道连接标识复位,退出所述插USB中断;若所述蓝牙通道连接标识未置位,则退出所述插USB中断;
若所述休眠标识未置位,则判断所述蓝牙通道连接标识是否置位,是,将所述蓝牙通道连接标识复位,关闭蓝牙连接中断使能,打开所述USB通道使能,将所述USB通道连接标识置位,退出插USB中断;否,关闭所述蓝牙连接中断使能,所述打开USB通道使能,将所述USB通道连接标识置位,退出所述插USB中断;
所述进入所述拔USB中断,将所述USB通道连接标识复位,具体包括:
进入所述拔USB中断,关闭所述USB通道使能,将所述USB通道连接标识复位,打开所述蓝牙连接中断使能,将所述休眠标识置位,所述MCU休眠,退出所述拔USB中断;
所述进入所述蓝牙连接中断,将蓝牙通道连接标识置位,具体包括:
进入所述蓝牙连接中断,判断所述休眠标识是否置位,是,将所述休眠标识复位,所述MCU被唤醒,打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,退出蓝牙连接中断;否,打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,退出所述蓝牙连接中断;
所述进入所述蓝牙断开中断,将所述蓝牙通道连接标识复位,具体包括:
进入所述蓝牙断开中断,关闭所述蓝牙通道使能,将所述蓝牙通道连接标识复位,将所述休眠标识置位,所述MCU休眠,退出所述蓝牙断开中断。
所述步骤B中判断为否时返回步骤B之前,还包括步骤C’,
步骤C’:检测所述读卡器与所述上位机的连接方式;
如果所述读卡器是通过所述蓝牙模块与所述上位机连接,则所述读卡器将所述蓝牙通道连接标识置位,返回步骤B;如果所述读卡器是通过所述USB端口与所述上位机连接,将所述USB通道连接标识置位,返回步骤B;
所述进入所述插USB中断,将USB通道连接标识置位,具体包括:
进入所述插USB中断,判断所述休眠标识是否置位,是,将所述休眠标识复位,MCU被唤醒,打开USB通道使能,将所述USB通道连接标识置位,退出所述插USB中断;否,打开所述USB通道使能,将所述USB通道连接标识置位,退出所述插USB中断;
所述进入所述拔USB中断,将所述USB通道连接标识复位,具体包括:
进入所述拔USB中断,所述关闭USB通道使能,将所述USB通道连接标识复位,将所述休眠标识置位,所述MCU休眠,退出所述拔USB中断处理;
所述进入蓝牙连接中断,将蓝牙通道连接标识置位,具体包括:
进入所述蓝牙连接中断,判断所述休眠标识是否置位,是,将所述休眠标识复位,MCU被唤醒,打开蓝牙通道使能,将所述蓝牙通道连接标识置位,关闭插USB中断使能,退出所述蓝牙连接中断;否,判断所述USB通道连接标识是否置位,若所述USB通道连接标识置位,则将所述USB通道连接标识复位,打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,关闭所述插USB中断使能,退出所述蓝牙连接中断;若所述USB通道连接标识未置位,则打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,关闭所述插USB中断使能,退出所述蓝牙连接中断;
所述进入所述蓝牙断开中断,将所述蓝牙通道连接标识复位,具体包括:
进入所述蓝牙断开中断,关闭所述蓝牙通道使能,将所述蓝牙通道连接标识复位,打开所述插USB中断使能,将所述休眠标识置位,所述MCU休眠,退出所述蓝牙断开中断。
所述进入所述插USB中断,将USB通道连接标识置位,具体包括:
进入所述插USB中断,判断所述休眠标识是否置位,若所述休眠标识置位,将所述休眠标识复位,MCU被唤醒,打开USB通道使能,将所述USB通道连接标识置位,关闭蓝牙连接中断使能,退出所述插USB中断;若所述休眠标识未置位,则打开所述USB通道使能,将所述USB通道连接标识置位,关闭所述蓝牙连接中断使能,退出所述插USB中断;
所述进入所述拔USB中断,将所述USB通道连接标识复位,具体包括:
进入所述拔USB中断,关闭所述USB通道使能,将所述USB通道连接标识复位,打开所述蓝牙连接中断使能,将所述休眠标识置位,所述MCU休眠,退出所述拔USB中断;
所述进入所述蓝牙连接中断,将蓝牙通道连接标识置位,具体包括,
进入所述蓝牙连接中断,判断所述休眠标识是否置位,是,将所述休眠标识复位,所述MCU被唤醒,打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,关闭所述插USB中断使能,退出所述蓝牙连接中断;否,则打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,关闭所述插USB中断使能,退出所述蓝牙连接中断;
所述进入所述蓝牙断开中断,将所述蓝牙通道连接标识复位,具体包括:
进入所述蓝牙断开中断,关闭所述蓝牙通道使能,将所述蓝牙通道连接标识复位,打开所述插USB中断使能,将所述休眠标识置位,所述MCU休眠,退出所述蓝牙断开中断。
所述进入所述插卡中断,设置卡槽状态标识为有卡标识,具体包括,
进入所述插卡中断,判断所述休眠标识是否置位,若所述休眠标识置位,则将所述休眠标识复位,所述MCU被唤醒,设置所述卡槽状态标识为有卡标识,判断所述USB通道连接标识是否置位,是,向INT端点写入插卡响应,退出所述插卡中断;否,退出所述插卡中断;若所述休眠标识未置位,设置所述卡槽状态标识为有卡标识,判断所述USB通道连接标识是否置位,是,向所述INT端点写入插卡响应,退出所述插卡中断;否,退出所述插卡中断;
所述进入所述拔卡中断,设置所述卡槽状态标识为无卡标识,具体包括,
进入所述拔卡中断,设置所述卡槽状态标识为无卡标识,判断所述USB通道连接标识是否置位,是,向所述INT端点写入拔卡响应,将所述休眠标识置位,所述MCU休眠,退出所述拔卡中断;否,将所述休眠标识置位,所述MCU休眠,退出所述拔卡中断;
所述步骤A还包括打开定时器中断,
当所述读卡器收到定时器中断信号时,进入所述定时器中断,将计数清零,将所述休眠标识置位,所述MCU休眠,退出所述定时器中断。
所述进入所述USB通信中断,通过所述USB通道接收指令,根据收到的所述指令执行相应操作,并将操作结果通过所述USB通道返回给上位机,具体包括:
进入所述USB通信中断,通过所述USB通道接收指令,解析收到的所述指令,判断指令类型,如是查询卡槽状态指令,则所述读卡器查询卡槽状态,并设置卡槽状态数据的预设字节,将设置完的所述卡槽状态数据通过所述USB通道返回给所述上位机;如是上电指令,则所述读卡器对所述卡槽上电,读取上电响应,将所述上电响应通过所述USB通道返回给所述上位机;如是下电指令,则所述读卡器对所述卡槽下电,读取下电响应,将所述下电响应通过所述USB通道返回给所述上位机;如是操作卡片指令,则所述读卡器将所述操作卡片指令发送给卡片,接收所述卡片返回的操作卡片响应,将所述操作卡片响应通过所述USB通道返回给上位机,如是其他命令,则执行相应操作;
所述进入所述蓝牙通信中断,通过蓝牙通道接收指令,根据收到的所述指令执行相应操作,并将操作结果通过所述蓝牙通道返回给所述上位机,具体包括:
进入所述蓝牙通信中断,通过所述蓝牙通道接收指令,解析收到的所述指令,判断指令类型,如是查询卡槽状态指令,则所述读卡器查询卡槽状态,并设置卡槽状态数据的预设字节,将设置完的所述卡槽状态数据通过所述蓝牙通道返回给所述上位机;如是上电指令,则所述读卡器对所述卡槽上电,读取上电响应,将所述上电响应通过所述蓝牙通道返回给所述上位机;如是下电指令,则所述读卡器对所述卡槽下电,读取下电响应,将所述下电响应通过所述蓝牙通道返回给上位机;如是操作卡片指令,则所述读卡器将所述操作卡片指令发送给卡片,接收所述卡片返回的操作卡片响应,将所述操作卡片响应通过所述蓝牙通道返回给所述上位机;如是查询蓝牙模块参数信息指令,则所述读卡器通过所述蓝牙通道向上位机发送所述蓝牙模块的参数,等待接收所述上位机下发的所述蓝牙模块的新的参数,当接收到所述新的参数后,断开所述蓝牙模块连接,写入所述新的参数,然后将所述蓝牙模块切换为连接状态;如是其他命令,则执行相应操作。
所述进入所述USB通信中断,通过USB通道接收指令,根据收到的所述指令执行相应操作,并将操作结果通过所述USB通道返回给上位机,具体包括:
进入所述USB通信中断,通过所述USB通道接收指令,解析收到的所述指令,判断指令类型,如是切换通道命令,打开所述蓝牙连接中断使能;
所述进入蓝牙通信中断,进入所述蓝牙通信中断,通过蓝牙通道接收指令,根据收到的所述指令执行相应操作,并将操作结果通过所述蓝牙通道返回给所述上位机,具体包括,
进入所述蓝牙通信中断,通过所述蓝牙通道接收指令,解析收到的所述指令,判断指令类型,如是切换通道命令,打开所述插USB中断使能;如是其他命令,则执行相应操作。
所述蓝牙模块的参数,具体包括,MAC的内容、PIN码和读卡器设备名称;
所述判断是否读取成功,具体包括:所述读卡器根据所述蓝牙模块的参数中的指定字节判断是否读取成功;如果所述蓝牙模块的参数中的指定字节的取值等于预设字节,则表示读取成功;否则,表示读取不成功;
当所述读卡器通过USB端口与上位机建立连接时,所述读卡器通过所述USB端口充电。
所述MCU休眠,具体包括:
增加分频数值,降低总线时钟的频率,MCU内核电压等级切换至电压范围为1的状态,失能第一串行通信接口、第二串行通信接口外设后,MCU休眠。
步骤S1:读卡器系统初始化,打开插卡中断和/或拔卡中断和/或插USB中断和/或拔USB中断和/或蓝牙连接中断和/或蓝牙断开中断和/或定时器中断和/或USB通信中断和/或蓝牙通信中断;
步骤S2:判断工作电压是否低于预设值,是,提示低电量状态,当低电量状态超过第一预设时间时关闭所述读卡器;否,执行步骤S3;
步骤S3:判断是否存在置位的中断标识,如果存在置位的中断标识,则执行步骤S4;否则,返回步骤S2;
所述中断标识包括:插卡中断标识、拔卡中断标识、插USB中断标识、拔USB中断标识、蓝牙连接中断标识、蓝牙断开中断标识、蓝牙通信中断标识、USB通信中断标识、定时器中断标识;
步骤S4:检测所述置位的中断标识的类型;
如置位的中断标识为所述蓝牙通信中断标识或所述USB通信中断标识,则执行步骤S5;如为其他中断标识,则根据所述置位的中断标识的类型执行相应操作,返回步骤S2;
步骤S5:接收指令并保存所述指令对应的通道标识,根据所述指令的类型执行相应操作,向所述上位机发送相应的响应,清除相应的中断标识,返回步骤S2。
当所述读卡器收到插卡中断信号时,将所述插卡中断标识置位;
当所述读卡器收到拔卡中断信号时,将所述拔卡中断标识置位;
当所述读卡器收到插USB中断信号时,将所述插USB中断标识置位;
当所述读卡器收到拔USB中断信号时,将所述拔USB中断标识置位;
当所述读卡器收到蓝牙连接中断信号时,将所述蓝牙连接中断标识置位;
当所述读卡器收到蓝牙断开中断信号时,将所述蓝牙断开中断标识置位;
当所述读卡器收到蓝牙通信中断信号时,将所述蓝牙通信中断标识置位;
当所述读卡器收到USB通信中断信号时,将所述USB通信中断标识置位。
所述步骤S2与步骤S3之间包括,
步骤S2’:读取蓝牙模块的参数,判断是否读取成功,是,将所述蓝牙模块切换至连接状态,执行步骤S3;否,将USB通道标识置位,执行步骤S2;或者,
步骤S2’’:读取蓝牙模块的参数,判断是否读取成功,是,将所述蓝牙模块切换至连接状态,执行步骤S3;否,返回步骤S2’’。
所述如为其他中断标识,则根据所述置位的中断标识的类型执行相应操作,返回步骤S2,具体包括,
如所述置位的中断标识为插USB中断标识置位,则判断休眠标识是否置位,是,将所述休眠标识复位,MCU被唤醒,打开USB通道使能,将所述USB通道连接标识置位,将所述插USB中断标识复位,返回步骤S2;否,打开所述USB通道使能,将是USB通道连接标识置位,将所述插USB中断标识复位,返回步骤S2;
如所述置位的中断标识为拔USB中断标识置位,则判断所述蓝牙通道连接标识是否置位,是,关闭所述USB通道使能,将所述USB通道连接标识复位,将所述拔USB中断标识复位,返回步骤S2;否,关闭所述USB通道使能,将所述USB通道连接标识复位,将所述拔USB中断标识复位,将所述休眠标识置位,MCU休眠;
如所述置位的中断标识为蓝牙连接中断标识置位,则判断所述休眠标识是否置位,是,将所述休眠标识复位,所述MCU被唤醒,打开蓝牙通道使能,将蓝牙通道连接标识置位,将所述蓝牙连接中断标识复位,返回步骤S2;否,打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,将所述蓝牙连接中断标识复位,返回步骤S2;
如所述置位的中断标识为蓝牙断开中断标识置位,则判断所述USB通道连接标识是否置位,是,关闭所述蓝牙通道使能,将所述蓝牙通道连接标识复位,将所述蓝牙断开中断标识复位,返回步骤S2;否,关闭所述蓝牙通道使能,将所述蓝牙通道连接标识复位,将蓝牙断开中断标识复位,将所述休眠标识置位,所述MCU休眠。
所述步骤S2’与步骤S3之间或步骤S2’’与步骤S3之间包括步骤S3’,
步骤S3’:检测所述读卡器与所述上位机的连接方式;
如果所述读卡器是通过所述USB端口与所述上位机连接,则所述读卡器将USB通道连接标识置位,执行步骤S3;如果所述读卡器是通过所述蓝牙模块与上位机连接,将所述蓝牙通道连接标识置位,执行步骤S3;
所述如为其他中断标识,则根据所述置位的中断标识的类型执行相应操作,返回步骤S2,包括,
如所述置位的中断标识为插USB中断标识,则判断休眠标识是否置位,若所述休眠标识置位,将所述休眠标识复位,MCU被唤醒,打开USB通道使能,将USB通道连接标识置位,关闭蓝牙连接中断使能,判断蓝牙通道连接标识是否置位,若所述蓝牙通道连接标识置位,则将所述蓝牙通道连接标识复位,将所述插USB中断标识复位,返回步骤S2;若所述蓝牙通道连接标识未置位,则将所述插USB中断标识复位,返回步骤S2;
若所述休眠标识未置位,则判断所述蓝牙通道连接标识是否置位,是,将所述蓝牙通道连接标识复位,关闭所述蓝牙连接中断使能,打开所述USB通道使能,将所述USB通道连接标识置位,将所述插USB中断标识复位,返回步骤S2;否,关闭所述蓝牙连接中断使能,打开所述USB通道使能,将所述USB通道连接标识置位,将所述插USB中断标识复位,返回步骤S2;
如所述置位的中断标识为拔USB中断标识,则关闭所述USB通道使能,将所述USB通道连接标识复位,打开所述蓝牙连接中断使能,将所述拔USB中断标识复位,将所述休眠标识置位,所述MCU休眠;
如所述置位的中断标识为蓝牙连接中断标识,则判断所述休眠标识是否置位,是,将所述休眠标识复位,所述MCU被唤醒,打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,将所述蓝牙连接中断标识复位,返回步骤S2;否,打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,将所述蓝牙连接中断标识复位,返回步骤S2;
如所述置位的中断标识为蓝牙断开中断标识,则关闭所述蓝牙通道使能,将所述蓝牙通道连接标识复位,将所述蓝牙断开中断标识复位,将所述休眠标识置位,所述MCU休眠。
所述步骤S2’与步骤S3之间或步骤S2’’与步骤S3之间,包括步骤S3’’,
步骤S3’’:检测所述读卡器与所述上位机的连接方式;
如果所述读卡器是通过所述蓝牙模块与所述上位机连接,则所述读卡器将蓝牙通道连接标识置位,执行步骤S3;如果所述读卡器是通过所述USB端口与所述上位机连接,将所述USB通道连接标识置位,执行步骤S3;
所述如为其他中断标识,则根据所述置位的中断标识的类型执行相应操作,返回步骤S2,包括,
如所述置位的中断标识为插USB中断标识置位,则判断休眠标识是否置位,是,将所述休眠标识复位,MCU被唤醒,打开USB通道使能,将USB通道连接标识置位,将插USB中断标识复位,返回步骤S2;否,打开所述USB通道使能,将所述USB通道连接标识置位,将所述插USB中断标识复位,返回步骤S2;
如所述置位的中断标识为拔USB中断标识,则将所述USB通道连接标识复位,将所述休眠标识置位,将所述拔USB中断标识复位,所述MCU休眠;
如所述置位的中断标识为蓝牙连接中断标识,则判断所述休眠标识是否置位,是,将所述休眠标识复位,所述MCU被唤醒,打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,关闭所述插USB中断使能,将所述蓝牙连接中断标识复位,返回步骤S2;否,判断所述USB通道连接标识是否置位,若所述USB通道连接标识置位,则所述将USB通道连接标识复位,打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,关闭所述插USB中断使能,将所述蓝牙连接中断标识复位,返回步骤S2;若所述USB通道连接标识未置位,则打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,关闭所述插USB中断使能,将所述蓝牙连接中断标识复位,返回步骤S2;
如所述置位的中断标识为蓝牙断开中断标识,则关闭所述蓝牙通道使能,将所述蓝牙通道连接标识复位,打开所述插USB中断使能,将所述蓝牙断开中断标识复位,将所述休眠标识置位,所述MCU休眠。
所述如为其他中断标识,则根据所述置位的中断标识的类型执行相应操作,返回步骤S2,包括,
如所述置位的中断标识为插USB中断标识,则判断休眠标识是否置位,若所述休眠标识置位,将所述休眠标识复位,MCU被唤醒,打开USB通道使能,将USB通道连接标识置位,关闭蓝牙连接中断使能,将插USB中断标识复位,返回步骤S2;若所述休眠标识未置位,则打开所述USB通道使能,将所述USB通道连接标识置位,关闭所述蓝牙连接中断使能,将所述插USB中断标识复位,返回步骤S2;
如所述置位的中断标识为拔USB中断标识,则关闭所述USB通道使能,将所述USB通道连接标识复位,打开所述蓝牙连接中断使能,将所述拔USB中断标识复位,将所述休眠标识置位,所述MCU休眠;
如所述置位的中断标识为蓝牙连接中断标识,则判断所述休眠标识是否置位,是,将所述休眠标识复位,所述MCU被唤醒,打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,关闭所述插USB中断使能,将所述蓝牙连接中断标识复位,返回步骤S2;否则打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,关闭所述插USB中断使能,将所述蓝牙连接中断标识复位,返回步骤S2;
如所述置位的中断标识为蓝牙断开中断标识,则关闭所述蓝牙通道使能,将所述蓝牙通道连接标识复位,打开所述插USB中断使能,将所述蓝牙断开中断标识复位,将所述休眠标识置位,所述MCU休眠。
所述如为其他中断标识,则根据所述置位的中断标识的类型执行相应操作,返回步骤S2,还包括,
如所述置位的中断标识为插卡中断标识,则判断所述休眠标识是否置位,若所述休眠标识置位,则将所述休眠标识复位,所述MCU被唤醒,设置卡槽状态标识为有卡标识,判断所述USB通道连接标识是否置位,是,向INT端点写入插卡响应,将所述插卡中断标识复位,返回步骤S2;否,将所述插卡中断标识复位,返回步骤S2;若所述休眠标识未置位,判断所述USB通道连接标识是否置位,是,向所述INT端点写入插卡响应,将所述插卡中断标识复位,返回步骤S2;否,将所述插卡中断标识复位,返回步骤S2;
如所述置位的中断标识为拔卡中断标识,则设置所述卡槽状态标识为无卡标识,判断所述USB通道连接标识是否置位,是,向所述INT端点写入拔卡响应,将所述拔卡中断标识复位,将所述休眠标识置位,所述MCU休眠;否,将所述拔卡中断标识复位,将所述休眠标识置位,所述MCU休眠;
如所述置位的中断标识为定时器中断标识,则将计数清零,将所述定时器中断标识复位,将休眠标识置位,MCU休眠。
所述步骤S5,具体包括,
a:当通过USB通道收到指令时,将USB通道标识置位;当通过蓝牙通道收到指令时,将蓝牙通道标识置位;
b:根据所述指令的类型执行相应操作,向上位机发送相应的响应,清除相应的中断标识,包括:
如接收指令是查询卡槽状态指令,则查询卡槽状态,并设置卡槽状态数据的预设字节,检测当前置位的通道标识的类型,如是所述蓝牙通道标识,则通过所述蓝牙通道向所述上位机发送所述卡槽状态数据,将所述蓝牙通道标识复位,将所述蓝牙通信中断标识复位;如是所述USB通道标识,则通过所述USB通道向所述上位机发送所述卡槽状态数据,将所述USB通道标识复位,将所述USB通信中断标识复位;
如接收指令是上电指令,则对卡槽上电,读取上电响应,检测当前置位的通道标识的类型,如是所述蓝牙通道标识,则通过所述蓝牙通道向所述上位机发送所述上电响应,将所述蓝牙通道标识复位,将所述蓝牙通信中断标识复位;如是所述USB通道标识,则通过所述USB通道向所述上位机发送所述上电响应,将所述USB通道标识复位,将所述USB通信中断标识复位;
如接收指令是下电指令,则对卡槽下电,读取下电响应,检测当前置位的通道标识的类型,如是所述蓝牙通道标识,则通过所述蓝牙通道向所述上位机发送所述下电响应,将所述蓝牙通道标识复位,将所述蓝牙通信中断标识复位;如是所述USB通道标识,则通过所述USB通道向所述上位机发送所述下电响应,将所述USB通道标识复位,将所述USB通信中断标识复位;
如接收指令是操作卡片指令,则将所述操作卡片指令发送给卡片,接收所述卡片返回的操作卡片响应,检测当前置位的通道标识的类型,如是蓝牙通道标识,则通过所述蓝牙通道向所述上位机发送所述操作卡片响应,将所述蓝牙通道标识复位,将所述蓝牙通信中断标识复位;如是所述USB通道标识,则通过所述USB通道向所述上位机发送所述操作卡片响应,将所述USB通道标识复位,将所述USB通信中断标识复位;
如接收指令是查询蓝牙模块参数信息指令,则判断蓝牙通道标识是否置位,是,则通过所述蓝牙通道向所述上位机发送蓝牙模块的参数,等待接收所述上位机下发的蓝牙模块的新的参数,然后断开所述蓝牙模块连接,并写入新的参数,将所述蓝牙模块切换为连接状态,将所述蓝牙通道标识复位,将所述蓝牙通信中断标识复位;否,则报错。
所述步骤S5还包括,
a’:当通过USB通道收到指令时,将USB通道标识置位;当通过蓝牙通道收到指令时,将蓝牙通道标识置位;
b’:根据所述指令的类型执行相应操作,向得到上位机发送相应的响应,清除相应的中断标识,包括:
如接收指令是切换通道指令,则检测当前置位的通道标识是否为所述蓝牙通道标识,是,则关闭所述蓝牙通道使能,将所述蓝牙通道标识复位,打开所述USB通道使能,并将所述USB通道标识置位,将U所述SB通信中断标识复位;否,则关闭所述USB通道使能,将所述USB通道标识复位,打开所述蓝牙通道使能,并将所述蓝牙通道标识复位。
所述蓝牙模块的参数,具体包括,MAC的内容、PIN码和读卡器设备名称;
所述判断是否读取成功,具体包括:所述读卡器根据所述蓝牙模块的参数中的指定字节判断是否读取成功;如果所述蓝牙模块的参数中的指定字节的取值等于预设字节,则表示读取成功;否则,表示读取不成功;
当所述读卡器通过USB端口与上位机建立连接时,所述读卡器通过所述USB端口充电。
所述MCU休眠,具体包括:
增加分频数值,降低总线时钟的频率,MCU内核电压等级切换至电压范围为1的状态,失能第一串行通信接口、第二串行通信接口外设后,MCU休眠。
本发明达到的有益效果:一个读卡器,可以利用USB接口或蓝牙模块实现与上位机通信,并且在蓝牙模块与上位机通信过程中,可以设置蓝牙模块的参数。
附图说明
图1-1至图1-10为本发明实施例一提供的一种读卡器与上位机通信的方法流程图;
图2-1至图2-10为本发明实施例二提供的一种读卡器与上位机通信的方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式做进一步的详细描述。
本发明所述的读卡器可以是接触式读卡器也可以是非接触式读卡器,本发明实施方式以接触式读卡器为例。
实施例一
如图1-1所示,本发明提供了一种读卡器与上位机通信的方法,包括:
步骤101:读卡器系统初始化;
本实施例中,系统配置处理器时钟、定时器时钟、IO接口、串口、USB接口;
步骤102:打开中断;
本实施例中,读卡器打开插卡中断和/或拔卡中断和/或插USB中断和/或拔USB中断和/或蓝牙断开中断和/或定时器中断和/或USB通信中断和/或蓝牙通信中断。
步骤103:判断工作电压是否低于预设值;
是,提示低电压状态,如低电压状态超过第一预设时间则关闭读卡器;否,执行步骤104。
本实施例中,可以通过屏幕显示工作电压低和/或通过变换指示灯颜色提示工作电压低和/或通过蜂鸣提示工作电压低和/或通过语音提示工作电压低。第一预设时间可以为30s。
步骤104:读取蓝牙模块的参数;
本实施例中,读取MAC的内容、PIN码和读卡器设备名称。
步骤105:判断是否读取成功;
是,执行步骤106;否,返回步骤104。
本实施例中,读卡器从蓝牙模块中读取蓝牙模块的参数,并根据蓝牙模块的参数的最后一个字节判断是否读取成功。如果蓝牙模块的参数的最后一个字节是0X00,则表示读卡器读取蓝牙模块的参数成功;否则,读卡器读取蓝牙模块的参数不成功。
本步骤还可以为,读取蓝牙模块参数,判断是否读取成功,是,执行步骤106;否,位,将USB通道标识置位,然后执行步骤107。
步骤106:把蓝牙模块切换为连接状态;
本实施例中,将蓝牙模块状态输出引脚闭合。
步骤107:判断工作电压是否低于预设值;
是,提示低电压状态,若低电压状态超过第一预设时间,则关闭读卡器;否,等待接收中断信号,进入中断执行相应操作,返回步骤107。
本实施例中,等待接收中断信号,进入中断执行相应操作,具体包括:
如图1-2所示,当读卡器的卡到位引脚为高电平时,则进入插卡中断,关闭中断,清除插卡中断标识,判断休眠标识是否置位,若休眠标识置位,则将休眠标识复位,MCU被唤醒,设置卡槽状态标识为有卡标识,判断USB通道连接标识是否置位,是,向INT端点写入插卡响应,打开中断,退出插卡中断;否,打开中断,退出插卡中断;
若休眠标识未置位,则设置卡槽状态标识为有卡标识,判断USB通道连接标识是否置位,是,向INT端点写入插卡响应,打开中断,退出插卡中断;否,打开中断,退出插卡中断;
如图1-3所示,当读卡器的卡到位引脚为低电平时,进入拔卡中断,关闭中断,清除拔卡中断标识,设置卡槽状态标识为无卡标识,判断USB通道连接标识是否置位,是,向INT端点写入拔卡响应,将休眠标识置位,MCU休眠,打开中断,退出拔卡中断;否,将休眠标识置位,MCU休眠,打开中断,退出拔卡中断;
本实施例中,切换至休眠状态操作具体包括:增加分频数值,降低总线时钟的频率,MCU(微控制单元)内核电压等级切换至电压范围为1的状态,失能第一串行通信接口、第二串行通信接口外设后,MCU切换至休眠状态。
对于蓝牙模块,如果蓝牙模块为已连接状态,则蓝牙模块切换至定时监听模式;如果蓝牙模块为未连接状态则待机。
如图1-4所示,当读卡器的USB供电引脚为高电平时,进入插USB中断处理,关闭中断,清除插USB中断标识,判断休眠标识是否置位,是,将休眠标识复位,MCU被唤醒,打开USB通道使能,将USB通道连接标识置位,打开中断,退出插USB中断;否,打开USB通道使能,将USB通道连接标识置位,打开中断,退出插USB中断;
如图1-5所示,当读卡器的USB供电引脚为低电平时,进入拔USB中断,关闭中断,清除拔USB中断标识,判断蓝牙通道连接标识是否置位,是,关闭USB通道使能,将USB通道连接标识复位,打开中断,退出拔USB中断;否,关闭USB通道使能,将USB通道连接标识复位,将休眠标识置位,MCU休眠,打开中断,退出拔USB中断;
如图1-6所示,当蓝牙模块状态输出引脚电平变为高电平时,进入蓝牙连接中断,关闭中断,清除蓝牙连接中断标识,判断休眠标识是否置位,是,将休眠标识复位,MCU被唤醒,打开蓝牙通道使能,将蓝牙通道连接标识置位,打开中断,退出蓝牙连接中断;否,打开蓝牙通道使能,将蓝牙通道连接标识置位,打开中断,退出蓝牙连接中断;
如图1-7所示,当蓝牙模块状态输出引脚电平变为低电平时,进入蓝牙断开中断,关闭中断,清除蓝牙断开中断标识,判断USB通道连接标识是否置位,是,关闭蓝牙通道使能,将蓝牙通道连接标识复位,打开中断,退出蓝牙断开中断;否,关闭蓝牙通道使能,将蓝牙通道连接标识复位,将休眠标识置位,MCU休眠,打开中断,退出蓝牙断开中断;
如图1-8所示,当读卡器收到定时器触发时,进入定时器中断,关闭中断,清除定时器中断标识,计数清零,休眠标识置位,打开中断,退出定时器中断;
如图1-9所示,当读卡器通过USB通道接收到指令时,进入USB通信中断,具体操作如下:
步骤108-1:关闭中断;
步骤109-1:清除中断;
本实施例中,具体的清除USB通信中断标识;
步骤110-1:解析收到的指令,判断指令类型;
本实施例中,根据指令的第一字节的值判断指令类型。
如果指令的第一字节为0X65,则该指令为查询卡槽状态指令,执行步骤111-1;
如果指令的第一字节为0X62,则该指令为上电指令,执行步骤113-1;
如果指令的第一字节为0X63,则该指令为下电指令,执行步骤116-1;
如果指令的第一字节为0X6f,则该指令为操作卡片指令,执行步骤119-1;
如果接收到其他指令,则执行相应操作,然后打开中断,退出USB通信中断;
步骤111-1:查询卡槽状态,并设置卡槽状态数据的预设字节;
本实施例中,根据IO接口的状态判断卡槽状态。
如果IO接口为高电平,则表示是无卡状态,将卡槽状态数据的预设字节设置为0X02;
如果IO接口为低电平且指定的标识位为0,则表示是有卡已激活状态,将卡槽状态数据的预设字节设置为0X00;
如果IO接口为低电平且指定的标识位为1,则表示是有卡未激活状态,将卡槽状态数据的预设字节设置为0X01。
卡槽状态数据的预设字节可以为第八字节。
步骤112-1:通过USB通道向上位机发送卡槽状态数据,然后打开中断,退出USB通信中断;
步骤113-1:判断是否有卡片,是,对卡槽上电,然后执行步骤114-1;否,向上位机发送无卡响应,然后打开中断,退出USB通信中断;
本实施例中,查询卡槽状态标识,如是有卡标识则表示有卡片;否则表示无卡片。
步骤114-1:读取上电响应;
本实施例中,读取包含卡片信息的上电响应,例如:
800c00000000120000003bf095000081b1fe9a1f0729;
步骤115-1:通过USB通道向上位机发送上电响应,然后打开中断,退出USB通信中断;
步骤116-1:对卡槽下电;
步骤117-1:读取下电响应;
本实施例中,下电响应的第一字节为0X81,例如:81000000000004010000。
步骤118-1:通过USB通道向上位机发送下电响应,然后打开中断,退出USB通信中断;
步骤119-1:将操作卡片指令发送给卡片;
本实施例中,读卡器将接收到的操作卡片指令不做任何处理直接发送给卡片。
步骤120-1:接收卡片返回的操作卡片响应;
本实施例中,接收卡片返回第一字节为0X80的操作卡片响应。例如:8005000000001800000000e101f010;
步骤121-1:通过USB通道向上位机发送操作卡片响应,然后打开中断,退出USB通信中断。
如图1-10所示,当读卡器通过蓝牙通道收到指令时,进入蓝牙通信中断,具体操作如下:
步骤108-2:关闭中断;
步骤109-2:清除中断;
本实施例中,具体清除蓝牙通信中断标识。
步骤110-2:解析收到的指令,判断指令类型;
本实施例中,具体判断方法与步骤110-1相同,
如果该指令为查询卡槽状态指令,执行步骤111-2;
如果该指令为上电指令,执行步骤113-2;
如果该指令为下电指令,执行步骤116-2;
如果该指令为操作卡片指令,执行步骤119-2;
如果接收到第一字节为0X5A、第四字节为0X61,则该指令为查询蓝牙模块的参数信息指令,执行步骤122-2;
如果该指令为其他指令,则执行相应操作,打开中断,退出蓝牙通信中断。
步骤111-2:查询卡槽状态,并设置卡槽状态数据的预设字节;
本实施例中,具体操作与步骤111-1相同。
步骤112-2:通过蓝牙通道向上位机发送卡槽状态数据,然后打开中断,退出蓝牙通信中断;
步骤113-2:判断是否有卡片,是,对卡槽上电,然后执行步骤114-2;否,向上位机发送无卡响应,然后打开中断,退出蓝牙通信中断;
本实施例中,查询卡槽状态标识,如是有卡标识则表示有卡片;否则表示无卡片;
步骤114-2:读取上电响应;
本实施例中,具体操作与步骤114-1相同。
步骤115-2:通过蓝牙通道向上位机发送上电响应,然后打开中断,退出蓝牙通信中断;
步骤116-2:对卡槽下电;
步骤117-2:读取下电响应;
本实施例中,具体操作与步骤117-1相同。
步骤118-2:通过蓝牙通道向上位机发送下电响应,然后打开中断,退出蓝牙通信中断;
步骤119-2:将操作卡片指令发送给卡片;
本实施例中,读卡器将接收到的操作卡片指令不做任何处理直接发送给卡片。
步骤120-2:接收卡片返回的操作卡片响应;
本实施例中,具体操作与步骤120-1相同;
步骤121-2:通过蓝牙通道向上位机发送操作卡片响应,然后打开中断,退出蓝牙通信中断;
步骤122-2:通过蓝牙通道向上位机发送蓝牙模块的参数;
本实施例中,具体的向上位机发送第一字节为0XA5、第四字节为0X62、包含MAC内容、读卡器设备名称以及PIN码的蓝牙模块的参数。
步骤123-2:接收蓝牙模块的新的参数;
步骤124-2:断开蓝牙模块连接,并写入新的参数,然后将蓝牙模块切换为连接状态,然后打开中断,退出蓝牙通信中断。
需要说明的是,在本发明实施方式的步骤107中,返回步骤107之前还包括步骤107’,
步骤107’:检测读卡器与上位机的连接方式;
如果是通过所述USB端口与所述上位机连接,则所述读卡器将USB通道连接标识置位,返回步骤107;如果是通过所述蓝牙模块与上位机连接,将蓝牙通道连接标识置位,返回步骤107;
相应的,将当读卡器的USB供电引脚为高电平时,进入插USB中断,还包括,
当所述读卡器的USB供电引脚变为高电平时,进入插USB中断,关闭中断,清除插USB中断标识,判断休眠标识是否置位,若休眠标识置位,将休眠标识复位,MCU被唤醒,打开USB通道使能,将USB通道连接标识置位,判断蓝牙通道连接标识是否置位,若蓝牙通道连接标识置位,则将蓝牙通道连接标识复位,退出插USB中断处理,打开中断,关闭蓝牙连接中断使能,退出插USB中断处理;若蓝牙通道连接标识未置位,则打开中断,关闭蓝牙连接中断使能,退出插USB中断;
若休眠标识未置位,则判断蓝牙通道连接标识是否置位,是,将蓝牙通道连接标识复位,打开USB通道使能,将USB通道连接标识置位,打开中断,关闭蓝牙连接中断使能,退出插USB中断;否,将USB通道连接标识置位,打开中断,关闭蓝牙连接中断使能,退出插USB中断;
当读卡器的USB供电引脚为低电平时,进入拔USB中断,还包括,
进入拔USB中断,关闭中断,清除拔USB中断标识,关闭USB通道使能,将USB通道连接标识复位,将休眠标识置位,MCU休眠,打开中断,所述打开中断须确保打开蓝牙连接中断使能,退出拔USB中断;
当蓝牙模块状态输出引脚电平变为高电平时,进入蓝牙连接中断,还包括,进入蓝牙连接中断,关闭中断,清除蓝牙连接中断标识,判断休眠标识是否置位,是,将休眠标识复位,MCU被唤醒,打开蓝牙通道使能,将蓝牙通道连接标识置位,打开中断,退出蓝牙连接中断;否,打开蓝牙通道使能,将蓝牙通道连接标识置位,打开中断,退出蓝牙连接中断;
当蓝牙模块状态输出引脚电平变为低电平时,进入蓝牙断开中断,还包括,
进入蓝牙断开中断,关闭中断,清除蓝牙断开中断标识,关闭蓝牙通道使能,将蓝牙通道连接标识复位,将休眠标识置位,MCU休眠,打开中断,退出蓝牙断开中断。上述实施方式同样可以实现本发明目的。
需要说明的是,在本发明实施方式的所述步骤107中返回步骤107之前还包括步骤107’’,
步骤107’’:检测读卡器与上位机的连接方式,如果是通过所述蓝牙模块与所述上位机连接,则所述读卡器将蓝牙通道连接标识置位,返回步骤107;如果通过是所述USB端口与上位机连接,将USB通道连接标识置位,返回步骤107;
相应的,将当读卡器的USB供电引脚为低电平时,进入拔USB中断处理,具体包括,
当所述读卡器的USB供电引脚变为低电平时,进入拔USB中断,关闭中断,清除拔USB中断标识,关闭USB通道使能,将USB通道连接标识复位,将休眠标识置位,MCU休眠,打开中断,退出拔USB中断;
当蓝牙模块状态输出引脚电平变为高电平时,进入蓝牙连接中断,具体包括,
当蓝牙模块状态输出引脚电平变为高电平时,进入蓝牙连接中断,关闭中断,清除蓝牙连接中断标识,判断休眠标识是否置位,是,将休眠标识复位,MCU被唤醒,打开蓝牙通道使能,将蓝牙通道连接标识置位,打开中断,关闭插USB中断使能,退出蓝牙连接中断;否,判断USB通道连接标识是否置位,若USB通道连接标识置位,则将USB通道连接标识复位,打开蓝牙通道使能,将蓝牙通道连接标识置位,打开中断,关闭插USB中断使能,退出蓝牙连接中断;若USB通道连接标识未置位,则打开蓝牙通道使能,将蓝牙通道连接标识置位,打开中断,关闭插USB中断使能,退出蓝牙连接中断;
当蓝牙模块状态输出引脚电平变为低电平时,进入蓝牙断开中断,还包括,
当蓝牙模块状态输出引脚变为低电平时,进入蓝牙断开中断,关闭中断,清除蓝牙断开中断标识,关闭蓝牙通道使能,将蓝牙通道连接标识复位,打开中断,所述打开中断须确保打开插USB中断使能,将休眠标识置位,MCU休眠,退出蓝牙断开中断;上述实施方式同样可以实现本发明目的。
需要说明的是,在本发明的实施方式中,步骤110-1中还包括切换通道指令,如是切换通道指令,则关闭USB通道使能,打开蓝牙连接中断使能。
步骤110-2中还包括切换通道指令,如是切换通道指令,则关闭蓝牙通道使能,打开插USB中断使能。
当所述读卡器的USB供电引脚变为高电平时,进入插USB中断,具体包括,
当所述读卡器的USB供电引脚变为高电平时,进入插USB中断,关闭中断,清除插USB中断标识,判断休眠标识是否置位,若休眠标识置位,将休眠标识复位,MCU被唤醒,打开USB通道使能,将USB通道连接标识置位,打开中断,关闭蓝牙连接中断使能,退出插USB中断;若休眠标识未置位,则打开USB通道使能,将USB通道连接标识置位,打开中断,关闭蓝牙连接中断使能,退出插USB中断;
当所述读卡器的USB供电引脚变为低电平时,进入拔USB中断,具体包括,
当所述读卡器的USB供电引脚变为低电平时,进入拔USB中断,关闭中断,清除拔USB中断标识,关闭USB通道使能,将USB通道连接标识复位,将休眠标识置位,MCU休眠,打开中断,所述打开中断须确保打开蓝牙连接中断使能,退出拔USB中断;
当蓝牙模块状态输出引脚变为高电平时,进入蓝牙连接中断,具体包括,
当蓝牙模块状态输出引脚变为高电平时,进入蓝牙连接中断,关闭中断,清除蓝牙连接中断标识,判断休眠标识是否置位,是,将休眠标识复位,MCU被唤醒,打开蓝牙通道使能,将蓝牙通道连接标识置位,打开中断,关闭插USB中断使能,退出蓝牙连接中断;否,则打开蓝牙通道使能,将蓝牙通道连接标识置位,打开中断,关闭插USB中断使能,退出蓝牙连接中断;
当蓝牙模块状态输出引脚变为低电平时,进入蓝牙断开中断,具体包括,
当蓝牙模块状态输出引脚变为低电平时,进入蓝牙断开中断,关闭中断,清除蓝牙断开中断标识,关闭蓝牙通道使能,将蓝牙通道连接标识复位,将休眠标识置位,MCU休眠,打开中断,所述打开中断须确保,打开插USB中断使能,退出蓝牙断开中断。上述实施方式同样可以实现本发明目的。
在本发明的实施方式中,判断工作电压是否低于预设值的操作可以在系统初始化之后接收指令之前执行,还可以定时执行。
需要说明的是,本方案仍适用于非接触式读卡器,当非接触式读卡器切换至休眠状态,当有卡片时,调整非接触控制芯片的输出阻抗至阈值。当没有卡片时,则调整非接触控制芯片的开关场寄存器,关闭非接触场。
相应的,当非接触式读卡器芯片确定特定引脚上的电容值大于芯片中的电感应阈值时,向MCU的特定中断引脚输出高电平,触发外部中断,MCU被唤醒。
当非接触式读卡器接收到第一字节的值为0X62的指令时,执行开场操作;
当非接触式读卡器收到第一字节的值为0X63的指令时,执行关场操作。
实施例二
如图2-1所示,本发明提供了一种读卡器与上位机通信的方法,包括:
步骤201:读卡器系统初始化,打开中断;
本实施例中,系统配置处理器时钟、定时器时钟、IO接口、串口、USB接口;读卡器打开插卡中断和/或拔卡中断和/或插USB中断和/或拔USB中断和/或蓝牙连接中断和/或蓝牙断开中断和/或定时器中断和/或USB通信中断和/或蓝牙通信中断;
如图2-2所示,当卡到位检测引脚闭合时,进入插卡中断,关闭中断,清除中断,将插卡中断标识置位,然后打开中断,退出;
如图2-3所示,当卡到位检测引脚断开时,进入拔卡中断,关闭中断,清除中断,将拔卡中断标识置位,然后打开中断,退出;
如图2-4所示,当USB供电引脚闭合时,进入插USB中断,关闭中断,清除中断,将插USB中断标识置位,打开中断,退出;
如图2-5所示,当USB供电引脚断开时,进入拔USB中断,关闭中断,清除中断,将拔USB中断标识置位,打开中断,退出;
如图2-6所示,当蓝牙模块状态输出引脚闭合时,进入蓝牙连接中断,关闭中断,清除中断,将蓝牙连接中断标识置位,打开中断,退出;
如图2-7所示,当蓝牙模块状态输出引脚断开时,进入蓝牙断开中断,关闭中断,清除中断,将蓝牙断开中断标识置位,打开中断,退出;
如图2-8所示,当超过预设计数时,进入定时器中断,关闭中断,清除中断,计数清零,将定时器中断标识置位,打开中断,退出;
如图2-9所示,当通过蓝牙接收到指令时,进入蓝牙通信中断,关闭中断,清除中断,将蓝牙通信中断标识置位,打开中断,退出;
如图2-10所示,当通过USB通道接收到指令时,进入USB通信中断,关闭中断,清除中断,将USB通信中断标识置位,打开中断,退出。
步骤202:判断工作电压是否低于预设值;
是,提示低电压状态,若低电压状态超过第一预设时间,则关闭读卡器;否,执行步骤203。
本实施例中,可以通过屏幕显示或者通过变换指示灯颜色或者通过蜂鸣或者语音播报提示低电压状态。第一预设时间可以为30s。
步骤203:读取蓝牙模块的参数;
本实施例中,读取MAC的内容、PIN码和读卡器设备名称。
步骤204:判断是否读取成功;
是,执行步骤205;否,返回步骤203。
本实施例中,读卡器从蓝牙模块中读取蓝牙模块的参数,并根据蓝牙模块的参数的最后一个字节判断是否读取成功。如果蓝牙模块的参数的最后一个字节是0X00,则表示读卡器读取成功;否则,表示读卡器读取不成功。
步骤205:把蓝牙模块切换为连接状态;
步骤206:判断工作电压是否低于预设值;
是,提示低电压状态,若低电压状态超过第一预设时间,则关闭读卡器;否,执行步骤207。
步骤207:判断是否存在置位的中断标识;
是,执行步骤208;否,返回步骤206。
步骤208:判断置位的中断标识类型,如是蓝牙通信中断标识或USB通信中断标识,则执行步骤209;如是其他中断标识,则执行相应操作,清除中断标识。
其他中断标识包括,插卡中断标识,拔卡中断标识,定时器中断标识、插USB中断标识、蓝牙连接中断标识、蓝牙断开中断标识、拔USB中断标识;
如是插卡中断标识,则判断休眠标识是否置位,若休眠标识置位,则将休眠标识复位,MCU被唤醒,设置卡槽状态标识为有卡标识,判断USB通道连接标识是否置位,是,向INT端点写入插卡响应,清除中断标识,返回步骤206;否,清除中断标识,返回步骤206;若休眠标识未置位,判断USB通道连接标识是否置位,是,向INT端点写入插卡响应,清除中断标识,返回步骤206;否,清除中断标识,返回步骤206;其中,清除中断标识,具体为将插卡中断标识复位;
如是拔卡中断标识,则设置卡槽状态标识为无卡标识,判断USB通道连接标识是否置位,是,向INT端点写入拔卡响应,将休眠标识置位,MCU休眠,清除中断标识,等待唤醒;否,将休眠标识置位,MCU休眠,清除中断标识,等待唤醒;其中,清除中断标识具体为,将拔卡中断标识复位。
如是定时器中断标识,则将计数清零,将休眠标识置位,MCU休眠,清除中断标识,等待唤醒;其中,清除中断标识具体为,将定时器中断标识复位。
如是插USB中断标识,则执行步骤A;
如是蓝牙连接中断标识,则执行步骤B;
如是蓝牙断开中断标识,则执行步骤C;
如是拔USB中断标识,则执行步骤D;
步骤A:判断休眠标识是否置位,是,将休眠标识复位,MCU被唤醒,打开USB通道使能,将USB通道连接标识置位,清除中断标识,返回步骤206;否,打开USB通道使能,将USB通道连接标识置位,清除中断标识,返回步骤206;其中,清除中断标识具体为,将插USB中断标识复位;
步骤B:判断休眠标识是否置位,是,将休眠标识复位,MCU被唤醒,打开蓝牙通道使能,将蓝牙通道连接标识置位,清除中断标识,返回步骤206;否,打开蓝牙通道使能,将蓝牙通道连接标识置位,清除中断标识,返回步骤206;其中,清除中断标识具体为,将蓝牙连接中断标识复位;
步骤C:判断USB通道连接标识是否置位,是,关闭蓝牙通道使能,将蓝牙通道连接标识复位,清除中断标识,返回步骤206;否,关闭蓝牙通道使能,将蓝牙通道连接标识复位,将休眠标识置位,MCU休眠,清除中断标识,等待唤醒,其中,清除中断标识具体为,将蓝牙断开中断标识复位。
步骤D:判断蓝牙通道连接标识是否置位,是,关闭USB通道使能,将USB通道连接标识复位,清除中断标识,返回步骤206;否,关闭USB通道使能,将USB通道连接标识复位,将休眠标识置位,MCU休眠,清除中断标识,等待唤醒,其中,清除中断标识具体为,将拔USB中断标识复位;
本实施例中,MCU被唤醒,具体包括:降低分频数值,升高总线时钟的频率,MCU内核电压等级恢复至正常工作的状态,使能第一串行通信接口、第二串行通信接口外设后,MCU被唤醒。
切换至休眠状态操作具体包括:增加分频数值,降低总线时钟的频率,MCU内核电压等级切换至电压范围为1的状态,失能第一串行通信接口、第二串行通信接口外设后,MCU切换至休眠状态。
步骤209:接收指令并保存通道标识;
本实施例中,当读卡器收到指令完成标识符时,完成接收指令;如果通过USB通道接收指令,则通道标识保存为1;如果通过蓝牙通道接收指令,则通道标识保存为0。
步骤210:判断指令类型;
根据指令的第一字节的值判断指令类型。
如果指令的第一字节为0X65,则该指令为查询卡槽状态指令,执行步骤211;
如果指令的第一字节为0X62,则该指令为上电指令,执行步骤215;
如果指令的第一字节为0X63,则该指令为下电指令,执行步骤220;
如果指令的第一字节为0X6f,则该指令为操作卡片指令,执行步骤225;
如果接收到第一字节为0X5A、第四字节为0X61,则该指令为查询蓝牙模块的参数信息指令,执行步骤230;
步骤211:查询卡槽状态,并设置卡槽状态数据的预设字节;
本实施例中,根据IO接口的状态判断卡槽状态。
如果IO接口为高电平,则表示是无卡状态,将卡槽状态数据的预设字节设置为0X02;
如果IO接口为低电平且指定的标识位为0,则表示是有卡已激活状态,将卡槽状态数据的预设字节设置为0X00;
如果IO接口为低电平且指定的标识位为1,则表示是有卡未激活状态,将卡槽状态数据的预设字节设置为0X01。
卡槽状态数据的预设字节可以为第八字节。
步骤212:判断通道标识是否为1;
是,执行步骤214;否,执行步骤213。
步骤213:通过蓝牙通道向上位机发送卡槽状态数据,然后清除中断标识,然后返回步骤206;
本实施例中,清除中断标识具体为,将蓝牙通信中断标识复位。
步骤214:通过USB通道向上位机发送卡槽状态数据,然后清除中断标识,然后返回步骤206;
本实施例中,清除中断标识具体为,将USB通信中断标识复位。
步骤215:判断是否有卡片,是,对卡槽上电,然后执行步骤216;否,向上位机发送无卡响应,然后清除中断标识,返回步骤206;
本实施例中,查询卡槽状态标识,如是有卡标识则表示有卡片;否则表示无卡片;
步骤216:读取上电响应;
本实施例中,读取包含卡片信息的上电响应,例如:
800c00000000120000003bf095000081b1fe9a1f0729;
步骤217:判断通道标识是否为1;
是,执行步骤219;否,执行步骤218。
步骤218:通过蓝牙通道向上位机发送上电响应,然后清除中断标识,然后返回步骤206;
本实施例中,清除中断标识具体为,将蓝牙通信中断标识复位。
步骤219:通过USB通道向上位机发送上电响应,然后清除中断标识,然后返回步骤206;
本实施例中,清除中断标识具体为,将USB通信中断标识复位。
步骤220:对卡槽下电;
步骤221:读取下电响应;
本实施例中,下电响应的第一字节为0X81,例如:81000000000004010000。
步骤222:判断通道标识是否为1;
是,执行步骤224;否,执行步骤223。
步骤223:通过蓝牙通道向上位机发送下电响应,然后清除中断标识,然后返回步骤206;
本实施例中,清除中断标识具体为,将蓝牙通信中断标识复位。
步骤224:通过USB通道向上位机发送下电响应,然后清除中断标识,然后返回步骤206;
本实施例中,清除中断标识具体为,将USB通信中断标识复位。
步骤225:将操作卡片指令发送给卡片;
本实施例中,读卡器将接收到的操作卡片指令不做任何处理直接发送给卡片。
步骤226:接收卡片返回的操作卡片响应;
本实施例中,接收卡片返回第一字节为0X80的操作卡片响应。例如:8005000000001800000000e101f010;
步骤227:判断通道标识是否为1;
是,执行步骤228;否,执行步骤225。
步骤228:通过蓝牙通道向上位机发送操作卡片响应,然后清除中断标识,然后返回步骤206;
本实施例中,清除中断标识具体为,将蓝牙通信中断标识复位。
步骤229:通过USB通道向上位机发送操作卡片响应,然后清除中断标识,然后返回步骤206;
本实施例中,清除中断标识具体为,将USB通信中断标识复位。
步骤230:判断通道标识是否为1;
是,报错,然后清除中断标识;否,执行步骤234。
本实施例中,清除中断标识具体为,将USB通信中断标识复位。
步骤231:通过蓝牙通道向上位机发送蓝牙模块的参数;
本实施例中,具体的向上位机发送第一字节为0XA5、第四字节为0X62、包含MAC内容、读卡器设备名称以及PIN码的蓝牙模块的参数。
步骤232:接收上位机下发的蓝牙模块的新的参数;
步骤233:断开蓝牙模块连接,并写入新的参数,然后将蓝牙模块切换为连接状态,然后清除中断标识,然后返回步骤206;
本实施例中,清除中断标识具体为,将蓝牙通信中断标识复位。
需要说明的是,在本发明实施方式中,步骤206与步骤207之间还包括,检测读卡器与上位机的连接方式;
如果是通过USB端口与上位机连接,读卡器将USB通道连接标识置位,关闭蓝牙通道使能,执行步骤207;如果是通过所述蓝牙模块与上位机连接,将蓝牙通道连接标识置位,关闭USB通道使能,执行步骤207;
相应的,在步骤208中的步骤A至D还可以为步骤A-1至D-1,
步骤A-1:如是插USB中断标识,则判断休眠标识是否置位,若休眠标识置位,将休眠标识复位,MCU被唤醒,打开USB通道使能,将USB通道连接标识置位,关闭蓝牙连接中断使能,判断蓝牙通道连接标识是否置位,若蓝牙通道连接标识置位,则将蓝牙通道连接标识复位,清除中断标识,返回步骤206;若蓝牙通道连接标识未置位,则清除中断标识,返回步骤206;
若休眠标识未置位,则判断蓝牙通道连接标识是否置位,是,将蓝牙通道连接标识复位,关闭蓝牙连接中断使能,打开USB通道使能,将USB通道连接标识置位,清除中断标识,返回步骤206;否,关闭蓝牙连接中断使能,打开USB通道使能,将USB通道连接标识置位,清除中断标识,返回步骤206,其中,清除中断标识为,将插USB中断标识复位;
步骤B-1:判断休眠标识是否置位,是,将休眠标识复位,MCU被唤醒,打开蓝牙通道使能,将蓝牙通道连接标识置位,将蓝牙连接中断标识复位,返回步骤206;否,打开蓝牙通道使能,将蓝牙通道连接标识置位,将蓝牙连接中断标识复位,返回步骤206;
步骤C-1:关闭蓝牙通道使能,将蓝牙通道连接标识复位,将休眠标识置位,MCU休眠,清除中断标识,其中,清除中断标识具体为,将蓝牙断开中断标识复位。
步骤D-1:关闭USB通道使能,将USB通道连接标识复位,打开蓝牙连接中断使能,清除中断标识,将休眠标识置位,MCU休眠。
需要说明的是,在本发明实施方式中,步骤206与步骤207之间还包括,检测读卡器与上位机的连接方式;
如果是通过所述蓝牙模块与所述上位机连接,则所述读卡器将蓝牙通道连接标识置位,关闭USB通道使能,执行步骤207;如果是通过所述USB端口与上位机连接,将USB通道连接标识置位,关闭蓝牙通道使能,执行步骤207。相应的,将步骤208中步骤A至D还可以为步骤A-2至D-2,
步骤A-2:判断休眠标识是否置位,是,将休眠标识复位,MCU被唤醒,打开USB通道使能,将USB通道连接标识置位,清除中断标识,返回步骤206;否,打开USB通道使能,将USB通道连接标识置位,清除中断标识,返回步骤206;其中,清除中断标识具体为,将插USB中断标识复位。
步骤B-2:判断休眠标识是否置位,是,将休眠标识复位,MCU被唤醒,打开蓝牙通道使能,将蓝牙通道连接标识置位,关闭插USB中断使能,清除中断标识,返回步骤206;否,判断USB通道连接标识是否置位,若USB通道连接标识置位,则将USB通道连接标识复位,打开蓝牙通道使能,将蓝牙通道连接标识置位,关闭插USB中断使能,清除中断标识,返回步骤206;若USB通道连接标识未置位,则打开蓝牙通道使能,将蓝牙通道连接标识置位,关闭插USB中断使能,清除中断标识,返回步骤206,其中,清除中断标识具体为,将蓝牙连接中断标识复位;
步骤C-2:关闭蓝牙通道使能,将蓝牙通道连接标识复位,打开插USB中断使能,清除中断标识,将休眠标识置位,MCU休眠,其中,清除中断标识具体为,将蓝牙断开中断标识复位。
步骤D-2:将USB通道连接标识复位,将休眠标识置位,清除中断标识,MCU休眠,其中,清除中断标识具体为,将拔USB中断标识复位。
需要说明的是,本实施发明方式中,步骤208中的步骤A至D还可以为A-3至D-3,
步骤A-3:判断休眠标识是否置位,若休眠标识置位,将休眠标识复位,MCU被唤醒,打开USB通道使能,将USB通道连接标识置位,关闭蓝牙连接中断使能,清除中断标识,返回步骤206;若休眠标识未置位,则打开USB通道使能,将USB通道连接标识置位,关闭蓝牙连接中断使能,清除中断标识,返回步骤206,其中,清除中断标识具体为,将插USB中断标识复位;
步骤B-3:判断休眠标识是否置位,是,将休眠标识复位,MCU被唤醒,打开蓝牙通道使能,将蓝牙通道连接标识置位,关闭插USB中断使能,清除中断标识,返回步骤206;否,则打开蓝牙通道使能,将蓝牙通道连接标识置位,关闭插USB中断使能,清除中断标识,返回步骤206,其中,清除中断标识具体为,将蓝牙连接中断标识复位;
步骤C-3:关闭蓝牙通道使能,将蓝牙通道连接标识复位,打开插USB中断使能,清除中断标识,将休眠标识置位,MCU休眠,其中,清除中断标识具体为,将蓝牙断开中断标识复位;
步骤D-3:关闭USB通道使能,将USB通道连接标识复位,打开蓝牙连接中断使能,清除中断标识,将休眠标识置位,MCU休眠,其中,清除中断标识具体为,将拔USB中断标识复位。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (23)
1.一种读卡器与上位机通信的方法,其特征在于,包括:
步骤A:读卡器系统初始化,打开插卡中断和/或拔卡中断和/或插USB中断和/或拔USB中断和/或蓝牙连接中断和/或蓝牙断开中断和/或USB通信中断和/或蓝牙通信中断;
步骤B:判断工作电压是否低于预设值,是,提示低电压状态,若所述低电压状态超过第一预设时间,则关闭所述读卡器;否,返回步骤B;
在以上过程中还包括,
当所述读卡器收到USB通信中断信号时,进入所述USB通信中断,通过USB通道接收指令,根据收到的所述指令执行相应操作,并将操作结果通过所述USB通道返回给上位机;和/或
当所述读卡器收到蓝牙通信中断信号时,进入所述蓝牙通信中断,通过蓝牙通道接收指令,根据收到的所述指令执行相应操作,并将操作结果通过所述蓝牙通道返回给所述上位机;和/或
当所述读卡器收到插USB中断信号时,进入所述插USB中断,将USB通道连接标识置位;和/或
当所述读卡器收到拔USB中断信号时,进入所述拔USB中断,将所述USB通道连接标识复位;和/或
当所述读卡器收到蓝牙连接中断信号时,进入所述蓝牙连接中断,将蓝牙通道连接标识置位;和/或
当所述读卡器收到蓝牙断开中断信号时,进入所述蓝牙断开中断,将所述蓝牙通道连接标识复位;和/或
当所述读卡器收到插卡中断信号时,进入所述插卡中断,设置卡槽状态标识为有卡标识;和/或
当所述读卡器收到拔卡中断信号时,进入所述拔卡中断,设置所述卡槽状态标识为无卡标识。
2.如权利要求1所述的方法,其特征在于,所述步骤A与步骤B之间包括:
步骤B1:读取蓝牙模块的参数,判断是否读取成功,是,将所述蓝牙模块切换至连接状态,执行步骤B;否,将USB通道标识置位,执行步骤B;或者,
步骤B2:读取蓝牙模块的参数,判断是否读取成功,是,将所述蓝牙模块切换至连接状态,执行步骤B;否,返回步骤B2。
3.如权利要求2所述的方法,其特征在于,
所述进入所述插USB中断,将USB通道连接标识置位,具体包括:
进入所述插USB中断,判断休眠标识是否置位,是,将所述休眠标识复位,MCU被唤醒,打开USB通道使能,将所述USB通道连接标识置位,退出所述插USB中断;否,打开所述USB通道使能,将所述USB通道连接标识置位,退出所述插USB中断;
所述进入所述拔USB中断,将所述USB通道连接标识复位,具体包括:
进入拔USB中断,判断蓝牙通道连接标识是否置位,是,关闭所述USB通道使能,将所述USB通道连接标识复位,退出所述拔USB中断;否,关闭所述USB通道使能,将所述USB通道连接标识复位,将所述休眠标识置位,所述MCU休眠,退出所述拔USB中断;
所述进入蓝牙连接中断,将蓝牙通道连接标识置位,具体包括:
进入所述蓝牙连接中断,判断所述休眠标识是否置位,是,将所述休眠标识复位,所述MCU被唤醒,打开蓝牙通道使能,将蓝牙通道连接标识置位,退出所述蓝牙连接中断;否,打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,退出所述蓝牙连接中断;
所述进入所述蓝牙断开中断,将蓝牙通道连接标识复位,具体包括:
进入所述蓝牙断开中断,判断所述USB通道连接标识是否置位,是,关闭所述蓝牙通道使能,将所述蓝牙通道连接标识复位,退出所述蓝牙断开中断;否,关闭所述蓝牙通道使能,将所述蓝牙通道连接标识复位,将所述休眠标识置位,所述MCU休眠,退出所述蓝牙断开中断。
4.如权利要求2所述的方法,其特征在于,所述步骤B中判断为否时返回步骤B之前,还包括步骤C,
步骤C:检测所述读卡器与所述上位机的连接方式;
如果所述读卡器是通过USB端口与所述上位机连接,则所述读卡器将所述USB通道连接标识置位,返回步骤B;如果所述读卡器是通过蓝牙模块与上位机连接,将所述蓝牙通道连接标识置位,返回步骤B;
所述进入所述插USB中断,将USB通道连接标识置位,具体包括:
进入所述插USB中断,判断所述休眠标识是否置位,若所述休眠标识置位,将所述休眠标识复位,MCU被唤醒,打开USB通道使能,将所述USB通道连接标识置位,关闭蓝牙连接中断使能,判断所述蓝牙通道连接标识是否置位,若所述蓝牙通道连接标识置位,则将所述蓝牙通道连接标识复位,退出所述插USB中断;若所述蓝牙通道连接标识未置位,则退出所述插USB中断;
若所述休眠标识未置位,则判断所述蓝牙通道连接标识是否置位,是,将所述蓝牙通道连接标识复位,关闭蓝牙连接中断使能,打开所述USB通道使能,将所述USB通道连接标识置位,退出插USB中断;否,关闭所述蓝牙连接中断使能,所述打开USB通道使能,将所述USB通道连接标识置位,退出所述插USB中断;
所述进入所述拔USB中断,将所述USB通道连接标识复位,具体包括:
进入所述拔USB中断,关闭所述USB通道使能,将所述USB通道连接标识复位,打开所述蓝牙连接中断使能,将所述休眠标识置位,所述MCU休眠,退出所述拔USB中断;
所述进入所述蓝牙连接中断,将蓝牙通道连接标识置位,具体包括:
进入所述蓝牙连接中断,判断所述休眠标识是否置位,是,将所述休眠标识复位,所述MCU被唤醒,打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,退出蓝牙连接中断;否,打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,退出所述蓝牙连接中断;
所述进入所述蓝牙断开中断,将所述蓝牙通道连接标识复位,具体包括:
进入所述蓝牙断开中断,关闭所述蓝牙通道使能,将所述蓝牙通道连接标识复位,将所述休眠标识置位,所述MCU休眠,退出所述蓝牙断开中断。
5.如权利要求2所述的方法,其特征在于,所述步骤B中判断为否时返回步骤B之前,还包括步骤C’,
步骤C’:检测所述读卡器与所述上位机的连接方式;
如果所述读卡器是通过所述蓝牙模块与所述上位机连接,则所述读卡器将所述蓝牙通道连接标识置位,返回步骤B;如果所述读卡器是通过所述USB端口与所述上位机连接,将所述USB通道连接标识置位,返回步骤B;
所述进入所述插USB中断,将USB通道连接标识置位,具体包括:
进入所述插USB中断,判断所述休眠标识是否置位,是,将所述休眠标识复位,MCU被唤醒,打开USB通道使能,将所述USB通道连接标识置位,退出所述插USB中断;否,打开所述USB通道使能,将所述USB通道连接标识置位,退出所述插USB中断;
所述进入所述拔USB中断,将所述USB通道连接标识复位,具体包括:
进入所述拔USB中断,所述关闭USB通道使能,将所述USB通道连接标识复位,将所述休眠标识置位,所述MCU休眠,退出所述拔USB中断处理;
所述进入蓝牙连接中断,将蓝牙通道连接标识置位,具体包括:
进入所述蓝牙连接中断,判断所述休眠标识是否置位,是,将所述休眠标识复位,MCU被唤醒,打开蓝牙通道使能,将所述蓝牙通道连接标识置位,关闭插USB中断使能,退出所述蓝牙连接中断;否,判断所述USB通道连接标识是否置位,若所述USB通道连接标识置位,则将所述USB通道连接标识复位,打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,关闭所述插USB中断使能,退出所述蓝牙连接中断;若所述USB通道连接标识未置位,则打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,关闭所述插USB中断使能,退出所述蓝牙连接中断;
所述进入所述蓝牙断开中断,将所述蓝牙通道连接标识复位,具体包括:
进入所述蓝牙断开中断,关闭所述蓝牙通道使能,将所述蓝牙通道连接标识复位,打开所述插USB中断使能,将所述休眠标识置位,所述MCU休眠,退出所述蓝牙断开中断。
6.如权利要求2所述的方法,其特征在于,
所述进入所述插USB中断,将USB通道连接标识置位,具体包括:
进入所述插USB中断,判断所述休眠标识是否置位,若所述休眠标识置位,将所述休眠标识复位,MCU被唤醒,打开USB通道使能,将所述USB通道连接标识置位,关闭蓝牙连接中断使能,退出所述插USB中断;若所述休眠标识未置位,则打开所述USB通道使能,将所述USB通道连接标识置位,关闭所述蓝牙连接中断使能,退出所述插USB中断;
所述进入所述拔USB中断,将所述USB通道连接标识复位,具体包括:
进入所述拔USB中断,关闭所述USB通道使能,将所述USB通道连接标识复位,打开所述蓝牙连接中断使能,将所述休眠标识置位,所述MCU休眠,退出所述拔USB中断;
所述进入所述蓝牙连接中断,将蓝牙通道连接标识置位,具体包括,
进入所述蓝牙连接中断,判断所述休眠标识是否置位,是,将所述休眠标识复位,所述MCU被唤醒,打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,关闭所述插USB中断使能,退出所述蓝牙连接中断;否,则打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,关闭所述插USB中断使能,退出所述蓝牙连接中断;
所述进入所述蓝牙断开中断,将所述蓝牙通道连接标识复位,具体包括:
进入所述蓝牙断开中断,关闭所述蓝牙通道使能,将所述蓝牙通道连接标识复位,打开所述插USB中断使能,将所述休眠标识置位,所述MCU休眠,退出所述蓝牙断开中断。
7.如权利要求3至6任意一项所述的方法,其特征在于,
所述进入所述插卡中断,设置卡槽状态标识为有卡标识,具体包括,
进入所述插卡中断,判断所述休眠标识是否置位,若所述休眠标识置位,则将所述休眠标识复位,所述MCU被唤醒,设置所述卡槽状态标识为有卡标识,判断所述USB通道连接标识是否置位,是,向INT端点写入插卡响应,退出所述插卡中断;否,退出所述插卡中断;若所述休眠标识未置位,设置所述卡槽状态标识为有卡标识,判断所述USB通道连接标识是否置位,是,向所述INT端点写入插卡响应,退出所述插卡中断;否,退出所述插卡中断;
所述进入所述拔卡中断,设置所述卡槽状态标识为无卡标识,具体包括,
进入所述拔卡中断,设置所述卡槽状态标识为无卡标识,判断所述USB通道连接标识是否置位,是,向所述INT端点写入拔卡响应,将所述休眠标识置位,所述MCU休眠,退出所述拔卡中断;否,将所述休眠标识置位,所述MCU休眠,退出所述拔卡中断;
所述步骤A还包括打开定时器中断,
当所述读卡器收到定时器中断信号时,进入所述定时器中断,将计数清零,将所述休眠标识置位,所述MCU休眠,退出所述定时器中断。
8.如权利要求3至6任意一项所述的方法,其特征在于,
所述进入所述USB通信中断,通过所述USB通道接收指令,根据收到的所述指令执行相应操作,并将操作结果通过所述USB通道返回给上位机,具体包括:
进入所述USB通信中断,通过所述USB通道接收指令,解析收到的所述指令,判断指令类型,如是查询卡槽状态指令,则所述读卡器查询卡槽状态,并设置卡槽状态数据的预设字节,将设置完的所述卡槽状态数据通过所述USB通道返回给所述上位机;如是上电指令,则所述读卡器对所述卡槽上电,读取上电响应,将所述上电响应通过所述USB通道返回给所述上位机;如是下电指令,则所述读卡器对所述卡槽下电,读取下电响应,将所述下电响应通过所述USB通道返回给所述上位机;如是操作卡片指令,则所述读卡器将所述操作卡片指令发送给卡片,接收所述卡片返回的操作卡片响应,将所述操作卡片响应通过所述USB通道返回给上位机,如是其他命令,则执行相应操作;
所述进入所述蓝牙通信中断,通过蓝牙通道接收指令,根据收到的所述指令执行相应操作,并将操作结果通过所述蓝牙通道返回给所述上位机,具体包括:
进入所述蓝牙通信中断,通过所述蓝牙通道接收指令,解析收到的所述指令,判断指令类型,如是查询卡槽状态指令,则所述读卡器查询卡槽状态,并设置卡槽状态数据的预设字节,将设置完的所述卡槽状态数据通过所述蓝牙通道返回给所述上位机;如是上电指令,则所述读卡器对所述卡槽上电,读取上电响应,将所述上电响应通过所述蓝牙通道返回给所述上位机;如是下电指令,则所述读卡器对所述卡槽下电,读取下电响应,将所述下电响应通过所述蓝牙通道返回给上位机;如是操作卡片指令,则所述读卡器将所述操作卡片指令发送给卡片,接收所述卡片返回的操作卡片响应,将所述操作卡片响应通过所述蓝牙通道返回给所述上位机;如是查询蓝牙模块参数信息指令,则所述读卡器通过所述蓝牙通道向上位机发送所述蓝牙模块的参数,等待接收所述上位机下发的所述蓝牙模块的新的参数,当接收到所述新的参数后,断开所述蓝牙模块连接,写入所述新的参数,然后将所述蓝牙模块切换为连接状态;如是其他命令,则执行相应操作。
9.如权利要求6所述的方法,其特征在于,
所述进入所述USB通信中断,通过USB通道接收指令,根据收到的所述指令执行相应操作,并将操作结果通过所述USB通道返回给上位机,具体包括:
进入所述USB通信中断,通过所述USB通道接收指令,解析收到的所述指令,判断指令类型,如是切换通道命令,打开所述蓝牙连接中断使能;
所述进入蓝牙通信中断,进入所述蓝牙通信中断,通过蓝牙通道接收指令,根据收到的所述指令执行相应操作,并将操作结果通过所述蓝牙通道返回给所述上位机,具体包括,
进入所述蓝牙通信中断,通过所述蓝牙通道接收指令,解析收到的所述指令,判断指令类型,如是切换通道命令,打开所述插USB中断使能;如是其他命令,则执行相应操作。
10.如权利要求2所述的方法,其特征在于,
所述蓝牙模块的参数,具体包括,MAC的内容、PIN码和读卡器设备名称;
所述判断是否读取成功,具体包括:所述读卡器根据所述蓝牙模块的参数中的指定字节判断是否读取成功;如果所述蓝牙模块的参数中的指定字节的取值等于预设字节,则表示读取成功;否则,表示读取不成功;
当所述读卡器通过USB端口与上位机建立连接时,所述读卡器通过所述USB端口充电。
11.如权利要求7所述的方法,其特征在于,所述MCU休眠,具体包括:
增加分频数值,降低总线时钟的频率,MCU内核电压等级切换至电压范围为1的状态,失能第一串行通信接口、第二串行通信接口外设后,MCU休眠。
12.一种读卡器与上位机通信的方法,其特征在于,包括:
步骤S1:读卡器系统初始化,打开插卡中断和/或拔卡中断和/或插USB中断和/或拔USB中断和/或蓝牙连接中断和/或蓝牙断开中断和/或定时器中断和/或USB通信中断和/或蓝牙通信中断;
步骤S2:判断工作电压是否低于预设值,是,提示低电量状态,当低电量状态超过第一预设时间时关闭所述读卡器;否,执行步骤S3;
步骤S3:判断是否存在置位的中断标识,如果存在置位的中断标识,则执行步骤S4;否则,返回步骤S2;
所述中断标识包括:插卡中断标识、拔卡中断标识、插USB中断标识、拔USB中断标识、蓝牙连接中断标识、蓝牙断开中断标识、蓝牙通信中断标识、USB通信中断标识、定时器中断标识;
步骤S4:检测所述置位的中断标识的类型;
如置位的中断标识为所述蓝牙通信中断标识或所述USB通信中断标识,则执行步骤S5;如为其他中断标识,则根据所述置位的中断标识的类型执行相应操作,返回步骤S2;
步骤S5:接收指令并保存所述指令对应的通道标识,根据所述指令的类型执行相应操作,向所述上位机发送相应的响应,清除相应的中断标识,返回步骤S2。
13.如权利要求12所述的方法,其特征在于,
当所述读卡器收到插卡中断信号时,将所述插卡中断标识置位;
当所述读卡器收到拔卡中断信号时,将所述拔卡中断标识置位;
当所述读卡器收到插USB中断信号时,将所述插USB中断标识置位;
当所述读卡器收到拔USB中断信号时,将所述拔USB中断标识置位;
当所述读卡器收到蓝牙连接中断信号时,将所述蓝牙连接中断标识置位;
当所述读卡器收到蓝牙断开中断信号时,将所述蓝牙断开中断标识置位;
当所述读卡器收到蓝牙通信中断信号时,将所述蓝牙通信中断标识置位;
当所述读卡器收到USB通信中断信号时,将所述USB通信中断标识置位。
14.如权利要求12所述的方法,其特征在于,所述步骤S2与步骤S3之间包括,
步骤S2’:读取蓝牙模块的参数,判断是否读取成功,是,将所述蓝牙模块切换至连接状态,执行步骤S3;否,将USB通道标识置位,执行步骤S2;或者,
步骤S2’’:读取蓝牙模块的参数,判断是否读取成功,是,将所述蓝牙模块切换至连接状态,执行步骤S3;否,返回步骤S2’’。
15.如权利要求14所述的方法,其特征在于,所述如为其他中断标识,则根据所述置位的中断标识的类型执行相应操作,返回步骤S2,具体包括,
如所述置位的中断标识为插USB中断标识置位,则判断休眠标识是否置位,是,将所述休眠标识复位,MCU被唤醒,打开USB通道使能,将所述USB通道连接标识置位,将所述插USB中断标识复位,返回步骤S2;否,打开所述USB通道使能,将是USB通道连接标识置位,将所述插USB中断标识复位,返回步骤S2;
如所述置位的中断标识为拔USB中断标识置位,则判断所述蓝牙通道连接标识是否置位,是,关闭所述USB通道使能,将所述USB通道连接标识复位,将所述拔USB中断标识复位,返回步骤S2;否,关闭所述USB通道使能,将所述USB通道连接标识复位,将所述拔USB中断标识复位,将所述休眠标识置位,MCU休眠;
如所述置位的中断标识为蓝牙连接中断标识置位,则判断所述休眠标识是否置位,是,将所述休眠标识复位,所述MCU被唤醒,打开蓝牙通道使能,将蓝牙通道连接标识置位,将所述蓝牙连接中断标识复位,返回步骤S2;否,打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,将所述蓝牙连接中断标识复位,返回步骤S2;
如所述置位的中断标识为蓝牙断开中断标识置位,则判断所述USB通道连接标识是否置位,是,关闭所述蓝牙通道使能,将所述蓝牙通道连接标识复位,将所述蓝牙断开中断标识复位,返回步骤S2;否,关闭所述蓝牙通道使能,将所述蓝牙通道连接标识复位,将蓝牙断开中断标识复位,将所述休眠标识置位,所述MCU休眠。
16.如权利要求14所述的方法,其特征在于,
所述步骤S2’与步骤S3之间或步骤S2’’与步骤S3之间包括步骤S3’,
步骤S3’:检测所述读卡器与所述上位机的连接方式;
如果所述读卡器是通过所述USB端口与所述上位机连接,则所述读卡器将USB通道连接标识置位,执行步骤S3;如果所述读卡器是通过所述蓝牙模块与上位机连接,将所述蓝牙通道连接标识置位,执行步骤S3;
所述如为其他中断标识,则根据所述置位的中断标识的类型执行相应操作,返回步骤S2,包括,
如所述置位的中断标识为插USB中断标识,则判断休眠标识是否置位,若所述休眠标识置位,将所述休眠标识复位,MCU被唤醒,打开USB通道使能,将USB通道连接标识置位,关闭蓝牙连接中断使能,判断蓝牙通道连接标识是否置位,若所述蓝牙通道连接标识置位,则将所述蓝牙通道连接标识复位,将所述插USB中断标识复位,返回步骤S2;若所述蓝牙通道连接标识未置位,则将所述插USB中断标识复位,返回步骤S2;
若所述休眠标识未置位,则判断所述蓝牙通道连接标识是否置位,是,将所述蓝牙通道连接标识复位,关闭所述蓝牙连接中断使能,打开所述USB通道使能,将所述USB通道连接标识置位,将所述插USB中断标识复位,返回步骤S2;否,关闭所述蓝牙连接中断使能,打开所述USB通道使能,将所述USB通道连接标识置位,将所述插USB中断标识复位,返回步骤S2;
如所述置位的中断标识为拔USB中断标识,则关闭所述USB通道使能,将所述USB通道连接标识复位,打开所述蓝牙连接中断使能,将所述拔USB中断标识复位,将所述休眠标识置位,所述MCU休眠;
如所述置位的中断标识为蓝牙连接中断标识,则判断所述休眠标识是否置位,是,将所述休眠标识复位,所述MCU被唤醒,打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,将所述蓝牙连接中断标识复位,返回步骤S2;否,打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,将所述蓝牙连接中断标识复位,返回步骤S2;
如所述置位的中断标识为蓝牙断开中断标识,则关闭所述蓝牙通道使能,将所述蓝牙通道连接标识复位,将所述蓝牙断开中断标识复位,将所述休眠标识置位,所述MCU休眠。
17.如权利要求14所述的方法,其特征在于,
所述步骤S2’与步骤S3之间或步骤S2’’与步骤S3之间,包括步骤S3’’,
步骤S3’’:检测所述读卡器与所述上位机的连接方式;
如果所述读卡器是通过所述蓝牙模块与所述上位机连接,则所述读卡器将蓝牙通道连接标识置位,执行步骤S3;如果所述读卡器是通过所述USB端口与所述上位机连接,将所述USB通道连接标识置位,执行步骤S3;
所述如为其他中断标识,则根据所述置位的中断标识的类型执行相应操作,返回步骤S2,包括,
如所述置位的中断标识为插USB中断标识置位,则判断休眠标识是否置位,是,将所述休眠标识复位,MCU被唤醒,打开USB通道使能,将USB通道连接标识置位,将插USB中断标识复位,返回步骤S2;否,打开所述USB通道使能,将所述USB通道连接标识置位,将所述插USB中断标识复位,返回步骤S2;
如所述置位的中断标识为拔USB中断标识,则将所述USB通道连接标识复位,将所述休眠标识置位,将所述拔USB中断标识复位,所述MCU休眠;
如所述置位的中断标识为蓝牙连接中断标识,则判断所述休眠标识是否置位,是,将所述休眠标识复位,所述MCU被唤醒,打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,关闭所述插USB中断使能,将所述蓝牙连接中断标识复位,返回步骤S2;否,判断所述USB通道连接标识是否置位,若所述USB通道连接标识置位,则所述将USB通道连接标识复位,打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,关闭所述插USB中断使能,将所述蓝牙连接中断标识复位,返回步骤S2;若所述USB通道连接标识未置位,则打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,关闭所述插USB中断使能,将所述蓝牙连接中断标识复位,返回步骤S2;
如所述置位的中断标识为蓝牙断开中断标识,则关闭所述蓝牙通道使能,将所述蓝牙通道连接标识复位,打开所述插USB中断使能,将所述蓝牙断开中断标识复位,将所述休眠标识置位,所述MCU休眠。
18.如权利要求14所述的方法,其特征在于,所述如为其他中断标识,则根据所述置位的中断标识的类型执行相应操作,返回步骤S2,包括,
如所述置位的中断标识为插USB中断标识,则判断休眠标识是否置位,若所述休眠标识置位,将所述休眠标识复位,MCU被唤醒,打开USB通道使能,将USB通道连接标识置位,关闭蓝牙连接中断使能,将插USB中断标识复位,返回步骤S2;若所述休眠标识未置位,则打开所述USB通道使能,将所述USB通道连接标识置位,关闭所述蓝牙连接中断使能,将所述插USB中断标识复位,返回步骤S2;
如所述置位的中断标识为拔USB中断标识,则关闭所述USB通道使能,将所述USB通道连接标识复位,打开所述蓝牙连接中断使能,将所述拔USB中断标识复位,将所述休眠标识置位,所述MCU休眠;
如所述置位的中断标识为蓝牙连接中断标识,则判断所述休眠标识是否置位,是,将所述休眠标识复位,所述MCU被唤醒,打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,关闭所述插USB中断使能,将所述蓝牙连接中断标识复位,返回步骤S2;否则打开所述蓝牙通道使能,将所述蓝牙通道连接标识置位,关闭所述插USB中断使能,将所述蓝牙连接中断标识复位,返回步骤S2;
如所述置位的中断标识为蓝牙断开中断标识,则关闭所述蓝牙通道使能,将所述蓝牙通道连接标识复位,打开所述插USB中断使能,将所述蓝牙断开中断标识复位,将所述休眠标识置位,所述MCU休眠。
19.如权利要求15至18任意一项所述的方法,其特征在于,所述如为其他中断标识,则根据所述置位的中断标识的类型执行相应操作,返回步骤S2,还包括,
如所述置位的中断标识为插卡中断标识,则判断所述休眠标识是否置位,若所述休眠标识置位,则将所述休眠标识复位,所述MCU被唤醒,设置卡槽状态标识为有卡标识,判断所述USB通道连接标识是否置位,是,向INT端点写入插卡响应,将所述插卡中断标识复位,返回步骤S2;否,将所述插卡中断标识复位,返回步骤S2;若所述休眠标识未置位,判断所述USB通道连接标识是否置位,是,向所述INT端点写入插卡响应,将所述插卡中断标识复位,返回步骤S2;否,将所述插卡中断标识复位,返回步骤S2;
如所述置位的中断标识为拔卡中断标识,则设置所述卡槽状态标识为无卡标识,判断所述USB通道连接标识是否置位,是,向所述INT端点写入拔卡响应,将所述拔卡中断标识复位,将所述休眠标识置位,所述MCU休眠;否,将所述拔卡中断标识复位,将所述休眠标识置位,所述MCU休眠;
如所述置位的中断标识为定时器中断标识,则将计数清零,将所述定时器中断标识复位,将休眠标识置位,MCU休眠。
20.如权利要求15至18任意一项所述的方法,其特征在于,所述步骤S5,具体包括,
a:当通过USB通道收到指令时,将USB通道标识置位;当通过蓝牙通道收到指令时,将蓝牙通道标识置位;
b:根据所述指令的类型执行相应操作,向上位机发送相应的响应,清除相应的中断标识,包括:
如接收指令是查询卡槽状态指令,则查询卡槽状态,并设置卡槽状态数据的预设字节,检测当前置位的通道标识的类型,如是所述蓝牙通道标识,则通过所述蓝牙通道向所述上位机发送所述卡槽状态数据,将所述蓝牙通道标识复位,将所述蓝牙通信中断标识复位;如是所述USB通道标识,则通过所述USB通道向所述上位机发送所述卡槽状态数据,将所述USB通道标识复位,将所述USB通信中断标识复位;
如接收指令是上电指令,则对卡槽上电,读取上电响应,检测当前置位的通道标识的类型,如是所述蓝牙通道标识,则通过所述蓝牙通道向所述上位机发送所述上电响应,将所述蓝牙通道标识复位,将所述蓝牙通信中断标识复位;如是所述USB通道标识,则通过所述USB通道向所述上位机发送所述上电响应,将所述USB通道标识复位,将所述USB通信中断标识复位;
如接收指令是下电指令,则对卡槽下电,读取下电响应,检测当前置位的通道标识的类型,如是所述蓝牙通道标识,则通过所述蓝牙通道向所述上位机发送所述下电响应,将所述蓝牙通道标识复位,将所述蓝牙通信中断标识复位;如是所述USB通道标识,则通过所述USB通道向所述上位机发送所述下电响应,将所述USB通道标识复位,将所述USB通信中断标识复位;
如接收指令是操作卡片指令,则将所述操作卡片指令发送给卡片,接收所述卡片返回的操作卡片响应,检测当前置位的通道标识的类型,如是蓝牙通道标识,则通过所述蓝牙通道向所述上位机发送所述操作卡片响应,将所述蓝牙通道标识复位,将所述蓝牙通信中断标识复位;如是所述USB通道标识,则通过所述USB通道向所述上位机发送所述操作卡片响应,将所述USB通道标识复位,将所述USB通信中断标识复位;
如接收指令是查询蓝牙模块参数信息指令,则判断蓝牙通道标识是否置位,是,则通过所述蓝牙通道向所述上位机发送蓝牙模块的参数,等待接收所述上位机下发的蓝牙模块的新的参数,然后断开所述蓝牙模块连接,并写入新的参数,将所述蓝牙模块切换为连接状态,将所述蓝牙通道标识复位,将所述蓝牙通信中断标识复位;否,则报错。
21.如权利要求20所述的方法,其特征在于,所述步骤S5还包括,
a’:当通过USB通道收到指令时,将USB通道标识置位;当通过蓝牙通道收到指令时,将蓝牙通道标识置位;
b’:根据所述指令的类型执行相应操作,向得到上位机发送相应的响应,清除相应的中断标识,包括:
如接收指令是切换通道指令,则检测当前置位的通道标识是否为所述蓝牙通道标识,是,则关闭所述蓝牙通道使能,将所述蓝牙通道标识复位,打开所述USB通道使能,并将所述USB通道标识置位,将U所述SB通信中断标识复位;否,则关闭所述USB通道使能,将所述USB通道标识复位,打开所述蓝牙通道使能,并将所述蓝牙通道标识复位。
22.如权利要求14所述的方法,其特征在于,
所述蓝牙模块的参数,具体包括,MAC的内容、PIN码和读卡器设备名称;
所述判断是否读取成功,具体包括:所述读卡器根据所述蓝牙模块的参数中的指定字节判断是否读取成功;如果所述蓝牙模块的参数中的指定字节的取值等于预设字节,则表示读取成功;否则,表示读取不成功;
当所述读卡器通过USB端口与上位机建立连接时,所述读卡器通过所述USB端口充电。
23.如权利要求19所述的方法,其特征在于,所述MCU休眠,具体包括:
增加分频数值,降低总线时钟的频率,MCU内核电压等级切换至电压范围为1的状态,失能第一串行通信接口、第二串行通信接口外设后,MCU休眠。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310049893.4A CN103092802B (zh) | 2013-02-07 | 2013-02-07 | 一种读卡器与上位机通信的方法 |
PCT/CN2014/070599 WO2014121681A1 (zh) | 2013-02-07 | 2014-01-14 | 一种读卡器与上位机通信的方法 |
US14/650,878 US9785585B2 (en) | 2013-02-07 | 2014-01-14 | Method for card reader to communicate with upper computer via USB channel communication and Bluetooth channel connection |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310049893.4A CN103092802B (zh) | 2013-02-07 | 2013-02-07 | 一种读卡器与上位机通信的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103092802A true CN103092802A (zh) | 2013-05-08 |
CN103092802B CN103092802B (zh) | 2015-07-22 |
Family
ID=48205392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310049893.4A Active CN103092802B (zh) | 2013-02-07 | 2013-02-07 | 一种读卡器与上位机通信的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9785585B2 (zh) |
CN (1) | CN103092802B (zh) |
WO (1) | WO2014121681A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103777617A (zh) * | 2014-02-20 | 2014-05-07 | 北京七星华创电子股份有限公司 | 上下位机通讯监控方法 |
WO2014121681A1 (zh) * | 2013-02-07 | 2014-08-14 | 飞天诚信科技股份有限公司 | 一种读卡器与上位机通信的方法 |
CN104346722A (zh) * | 2014-10-27 | 2015-02-11 | 飞天诚信科技股份有限公司 | 一种支持蓝牙通讯的移动支付终端及其工作方法 |
WO2015074448A1 (zh) * | 2013-11-20 | 2015-05-28 | 飞天诚信科技股份有限公司 | 一种通讯模式的识别方法 |
CN105487865A (zh) * | 2015-11-27 | 2016-04-13 | 山东超越数控电子有限公司 | 一种解决usb设备异常唤醒系统的方法 |
CN105516901A (zh) * | 2015-12-21 | 2016-04-20 | 飞天诚信科技股份有限公司 | 一种低功耗蓝牙设备及其工作方法 |
CN103902492B (zh) * | 2014-04-21 | 2017-06-06 | 飞天诚信科技股份有限公司 | 一种读卡器的工作方法 |
CN108391261A (zh) * | 2018-02-28 | 2018-08-10 | 惠州Tcl移动通信有限公司 | 一种蓝牙搜索检测方法、检测设备、存储介质及移动终端 |
CN109581935A (zh) * | 2018-12-29 | 2019-04-05 | 广州市易售宝互联网科技有限公司 | 一种多合一智能开户设备控制系统 |
CN111353595A (zh) * | 2018-12-20 | 2020-06-30 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6478486B2 (ja) | 2013-11-20 | 2019-03-06 | キヤノン株式会社 | 情報処理装置、その制御方法及びプログラム |
CN107784756B (zh) * | 2016-08-24 | 2021-01-26 | 湖南长城计算机系统有限公司 | 一种pos机读写psam卡信息的控制方法和控制装置 |
CN107885674B (zh) * | 2017-10-18 | 2020-05-29 | 北京明华联盟科技有限公司 | 蓝牙设备模拟器及其工作方法、蓝牙设备作业系统 |
CN110855447B (zh) * | 2019-10-23 | 2022-03-25 | 郑州众智科技股份有限公司 | 一种通讯连接方法、通讯方法及发电机组控制器通讯系统 |
CN112307783B (zh) * | 2020-12-31 | 2021-04-27 | 飞天诚信科技股份有限公司 | 一种读卡器辅助设备及其工作方法 |
CN116361011B (zh) * | 2023-06-01 | 2023-08-11 | 深圳市莎科电子有限公司 | 操作手柄系统响应提速方法、装置和智能游戏手柄 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008046857A (ja) * | 2006-08-16 | 2008-02-28 | Seiko Epson Corp | 情報処理装置、情報処理方法及びそのプログラム |
US20080307140A1 (en) * | 2007-06-08 | 2008-12-11 | Igt | Sideband signal for usb with interrupt capability |
CN102135921A (zh) * | 2011-02-16 | 2011-07-27 | 无锡盖亚科技有限公司 | 便携式终端低电量系统保护的保护电路、保护方法及软件实现方法 |
CN202486793U (zh) * | 2012-03-07 | 2012-10-10 | 武汉天喻信息产业股份有限公司 | 带有蓝牙通道的读卡设备 |
CN102722687A (zh) * | 2012-05-30 | 2012-10-10 | 飞天诚信科技股份有限公司 | 一种检测非接触式cpu卡片离开射频场的方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE403188T1 (de) * | 2006-01-30 | 2008-08-15 | Research In Motion Ltd | Verfahren und vorrichtung zur datensendung zwischen usb-kunden |
US8775709B2 (en) * | 2009-10-30 | 2014-07-08 | Feitian Technologies Co., Ltd. | Method for recognizing a card reader with multiple card holders and method for communicating between a host and the card reader and system thereof |
JP5648024B2 (ja) * | 2012-07-10 | 2015-01-07 | 日本電産サンキョー株式会社 | カードリーダ |
CN103092802B (zh) * | 2013-02-07 | 2015-07-22 | 飞天诚信科技股份有限公司 | 一种读卡器与上位机通信的方法 |
CN103678215B (zh) * | 2013-12-09 | 2016-04-06 | 飞天诚信科技股份有限公司 | 一种智能读卡器的工作方法 |
-
2013
- 2013-02-07 CN CN201310049893.4A patent/CN103092802B/zh active Active
-
2014
- 2014-01-14 WO PCT/CN2014/070599 patent/WO2014121681A1/zh active Application Filing
- 2014-01-14 US US14/650,878 patent/US9785585B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008046857A (ja) * | 2006-08-16 | 2008-02-28 | Seiko Epson Corp | 情報処理装置、情報処理方法及びそのプログラム |
US20080307140A1 (en) * | 2007-06-08 | 2008-12-11 | Igt | Sideband signal for usb with interrupt capability |
CN102135921A (zh) * | 2011-02-16 | 2011-07-27 | 无锡盖亚科技有限公司 | 便携式终端低电量系统保护的保护电路、保护方法及软件实现方法 |
CN202486793U (zh) * | 2012-03-07 | 2012-10-10 | 武汉天喻信息产业股份有限公司 | 带有蓝牙通道的读卡设备 |
CN102722687A (zh) * | 2012-05-30 | 2012-10-10 | 飞天诚信科技股份有限公司 | 一种检测非接触式cpu卡片离开射频场的方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014121681A1 (zh) * | 2013-02-07 | 2014-08-14 | 飞天诚信科技股份有限公司 | 一种读卡器与上位机通信的方法 |
WO2015074448A1 (zh) * | 2013-11-20 | 2015-05-28 | 飞天诚信科技股份有限公司 | 一种通讯模式的识别方法 |
US10169276B2 (en) | 2013-11-20 | 2019-01-01 | Feitian Technologies Co., Ltd. | Detecting a communication mode via interruptions |
CN103777617B (zh) * | 2014-02-20 | 2016-10-19 | 北京七星华创电子股份有限公司 | 上下位机通讯监控方法 |
CN103777617A (zh) * | 2014-02-20 | 2014-05-07 | 北京七星华创电子股份有限公司 | 上下位机通讯监控方法 |
CN103902492B (zh) * | 2014-04-21 | 2017-06-06 | 飞天诚信科技股份有限公司 | 一种读卡器的工作方法 |
CN104346722B (zh) * | 2014-10-27 | 2017-10-31 | 飞天诚信科技股份有限公司 | 一种支持蓝牙通讯的移动支付终端及其工作方法 |
CN104346722A (zh) * | 2014-10-27 | 2015-02-11 | 飞天诚信科技股份有限公司 | 一种支持蓝牙通讯的移动支付终端及其工作方法 |
CN105487865A (zh) * | 2015-11-27 | 2016-04-13 | 山东超越数控电子有限公司 | 一种解决usb设备异常唤醒系统的方法 |
CN105516901A (zh) * | 2015-12-21 | 2016-04-20 | 飞天诚信科技股份有限公司 | 一种低功耗蓝牙设备及其工作方法 |
CN105516901B (zh) * | 2015-12-21 | 2019-01-04 | 飞天诚信科技股份有限公司 | 一种低功耗蓝牙设备及其工作方法 |
CN108391261A (zh) * | 2018-02-28 | 2018-08-10 | 惠州Tcl移动通信有限公司 | 一种蓝牙搜索检测方法、检测设备、存储介质及移动终端 |
CN111353595A (zh) * | 2018-12-20 | 2020-06-30 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN109581935A (zh) * | 2018-12-29 | 2019-04-05 | 广州市易售宝互联网科技有限公司 | 一种多合一智能开户设备控制系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2014121681A1 (zh) | 2014-08-14 |
US9785585B2 (en) | 2017-10-10 |
US20150347329A1 (en) | 2015-12-03 |
CN103092802B (zh) | 2015-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103092802B (zh) | 一种读卡器与上位机通信的方法 | |
CN106655458A (zh) | 电池切换方法、具该电池的电子装置及可穿戴装置 | |
CN103313365B (zh) | 远程控制计量系统 | |
CN103902492B (zh) | 一种读卡器的工作方法 | |
CN104281465B (zh) | 计算机及其唤醒方法 | |
CN103105915A (zh) | 一种智能终端的复位方法及系统 | |
CN107680399A (zh) | 无线车位检测方法及车位检测器 | |
CN103914123B (zh) | 计算机装置及其电源管理方法 | |
CN105677596B (zh) | 一种控制方法及电子设备 | |
CN105070022A (zh) | 仪表端装置、无线抄表系统和方法 | |
CN104795866A (zh) | 用于可视卡的电源控制方法 | |
CN103279432A (zh) | 智能密钥装置工作模式切换方法及智能密钥装置 | |
CN107423196A (zh) | 一种多卡槽状态检测方法、检测设备及移动终端 | |
CN106921192A (zh) | 终端及电量共享方法 | |
CN202995613U (zh) | 死机复位装置 | |
CN105892609A (zh) | 一种终端开机与识别存储卡同步运行的方法及智能终端 | |
CN103888556B (zh) | 一种家庭终端设备及家庭终端设备的控制方法 | |
CN203520299U (zh) | 一种定时开机控制电路 | |
CN106684478A (zh) | 一种带通讯指令控制usb电池的控制方法 | |
CN113687711B (zh) | 一种终端的唤醒电路及唤醒方法 | |
CN202949498U (zh) | 具有人脸识别装置的电视机 | |
CN201527607U (zh) | 基于pci-e插槽的开关机控制卡 | |
CN203241993U (zh) | 接口系统、USB key及UART终端 | |
CN203839622U (zh) | 一种多功能插接件 | |
WO2021103098A1 (zh) | 功耗控制装置及智能设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
OL01 | Intention to license declared | ||
OL01 | Intention to license declared |