M1读卡器及串口数据透传外包开发V2.docx_第1页
M1读卡器及串口数据透传外包开发V2.docx_第2页
M1读卡器及串口数据透传外包开发V2.docx_第3页
M1读卡器及串口数据透传外包开发V2.docx_第4页
M1读卡器及串口数据透传外包开发V2.docx_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

读卡器功能需求1:可控制阀门(继电器)用2个2P的3.96端子 完成一路,一路有两条线(继电器双刀?),总共要控制4路? 2:可检测油枪开关状态(检查电平?)用2个2P的3.96端子完成一路 4路 3:可透传其它串口的命令,透传3个串口或更多串口,如嵌入式打印机之类的设备透传的串口要分两类:一个接嵌入式打印机,本设备最多只接一个打印机(打印机除了RXD,TXD,GND外还有一条BUSY端口,BUSY端口高电平说明打印机忙,不接收指令,低电平时可接收指令,单片机程序要注意这一点)打印机串口上电默认通信参数为:9600,无校验,8位数据位,1起始位,1停止位,要不两个串口都这样默认吧另一类为加油机主板,至少要能有两个串口或更多串口(相同波特率)是否考虑用CD4051或4067进行分时扩展?转8个串口还是转16个?可以做两种不同的么?CD4051出来直接就是TTL么?还是转恒山电流环?4: LCD显示,汉字可以在程序中事先定义好,显示汉字的位置和其它数字可任意组合5:取键盘输入数据(输入回显的地方和(明文、星号)由上位机指定)4X4键盘,键盘需要有功能复用组合6:读卡数据(整行16个字节)7:写卡数据(整行16个字节)8:读卡器1分钟后主串口没有收到电脑发过来的命令,就用蜂鸣器报警,LCD显示通信中断,主串口使用TTL/RS232标准接口,可随时切换9:所有的串口发送与接收以及I/O处都要有LED灯,在外壳处可观察到(电源,主串口收发,加油机串口收发,打印机串口收发,4路继电器输出)油枪开关状态的LED灯只设计在I/O板上,串口收发指示灯采用双色灯10:PCB做分体设计:1:核心板2:I/O板(控制阀门的继电器,检测油枪开关)用灰排线和核心板连接(每两路一块板) 用10PIN的排线够么?对于继电器的吸合来说,需要另外搞个电源么?3:加油机串口扩展板(打印机串口直接由主板引出,不在此板上)CD4051、4067在这里?加油机串口扩展板由扩展主板和接口小板组成?扩展主板与接口小板使用TTL标准连接,而各种接口小板则根据不同的加油机接口电路设计 ,串口扩展板也需要通信指示灯,通信指示灯是否另外做小板用排线引出信号?(参照CS30000结构)I/O板和扩展板等外部接口都加光耦防止搞坏主板?4:RFID板除LCD外,其它的安装孔均以安装3MM的螺丝为标准电源接口入加二极管防止电源接反与加油机的外部接口是否加上磁珠防雷?主串口(与PC机连接)的通信速率由4位拨码开关设定?其它的通信参数固定为:无校验,8位数据位,1位停止位。通信协议前导码(1字节)+数据长度(1字节)+命令类型(1字节)+命令实体数据(0-N字节)+校验(1字节)前导码:FB数据长度:计算的范围包括命令类型+命令实体数据+校验校验:所有数据,每个字节进行XOR得出的结果以下写出的示例命令只含命令类型和命令实体数据,没有前导码,数据长度和校验示例中,SENDPC单片机RECV单片机PC01:读IC卡物理卡号(没有命令实体数据)命令实体:无读卡器返回: 01+ 卡号(16进制,4字节) 如没有卡片返回:01 示例:SEND:01RECV:01 AA BB CC DD(物理卡号AA BB CC DD)RECV:01(没有卡)02:读IC卡指定扇区的内容 (读卡密钥由0D命令事先设定)命令实体:绝对数据块(1字节)绝对数据块从0.63读卡器返回:02+绝对数据块(1字节)+ 数据内容(16进制,16字节) 如读数据出错返回:02+绝对数据块(1字节) 示例:读第1数据块的数据SEND:02 01RECV:02 01 01 02 03 04 05 09 07 08 09 0A 0B 0C 0D 0E 0F(读数据成功)RECV:02 01 XX (读数据失败)XX为单片机返回的出错代码:如密码不对,卡已离开 之类的错误代码03:写IC卡指定扇区的内容(写卡密钥由0D命令事先设定)命令实体:绝对数据块(1字节)+数据内容(16字节)读卡器返回: 03+绝对数据块(1字节)+ AA (写数据成功)读卡器返回: 03+绝对数据块(1字节)+ 55 (写数据失败)示例:向第一数据块写入:11 22 33 44 55 66 77 88 99 00 AA BB CC DD EE FFSEND:03 01 11 22 33 44 55 66 77 88 99 00 AA BB CC DD EE FF RECV:03 01 AA(写数据成功)RECV:03 01 XX(写数据失败) XX为单片机返回的出错代码:如密码不对,卡已离开 之类的错误代码04:显示命令,在LCD上显示指定的内容命令实体:行号(1字节)+显示控制符(不定长) 读卡器返回: 04+行号(1字节)+ AA (写数据成功)读卡器返回: 04+行号(1字节)+ 55 (写数据失败)行号的取值范围为:01-04显示方案可由汉字和ASCII字符混编液晶屏由于没有字库,需要显示的汉字由单片机程序事先定义好,可以定义的标识范围:00-1F,7F-FF如单片机里字符串有以下定义:01:余额:02:元03:储值卡04:定额卡05:车号06: 粤07:警08:正常09:请输入密码:20-7E直接显示对应的ASCII字符示例:在第二行显示:余额:12345.67元SEND:04 02 01 31 32 33 34 35 2E 36 37 02RECV:04 02 55(显示成功)分解(从第三字节开始)01 汉字定义:余额:31-35:ASCII字符:1-52E:ASCII字符 .36 37:ASCII字符:6702:汉字定义:元在第一行显示:车号:粤-12345SEND:04 01 05 06 2D 31 32 33 34 35RECV:04 01 55(显示成功)在第三行显示:正常 请输入密码:SEND:04 03 08 20 09RECV:04 03 AA(显示失败)05:取当前显示的状态命令实体:行号读卡器返回:最近一次PC发送给单片机并显示成功的数据示例如当前LCD第一行显示:车号:粤-12345SEND: 05 01 RECV: 05 01 05 06 2D 31 32 33 34 3506:检测油枪状态(I/O输入) 命令实体:通道(1字节)从01到04读卡器返回:通道(1字节)+电平示例:检查2号通道的油枪状态SEND:06 02RECV:06 02 01(高电平)RECV:06 02 00(低电平)07:控制阀门(I/O输出)命令实体:通道(1字节)+状态(1字节)读卡器返回:返回接收到完全一致的消息示例:设置3号阀门接通SEND:07 03 01RECV:07 03 01示例:设置2号阀门断开SEND:07 02 00RECV:07 02 0008:查询阀门状态:命令实体:通道(1字节)读卡器返回:通道(1字节)+阀门状态示例:查询3号阀门状态SEND:08 03RECV:08 03 01(接通)RECV:08 03 00(断开)09:设置透传串口参数命令实体:串口号+波特率+奇偶校验位+数据位+停止位 需要设置5787这样的波特率读卡器返回:串口号+执行状态串口号:00 加油机扩展用01 小票打印机专用波特率:用完整的16进制表示(3字节) 9600用十六进制:002580表示奇偶校验位:00 NONE01 ODD02EVEN03 MARK04SPACE数据位:00 5位01 6位02 7位03 8位停止位:00 1位01 1.5位02 2位示例:设置打印机端口为:9600bps,无校验位,8位数据,1位停止SEND:09 01 00 25 80 00 03 00RECV: 09 01 AA设置成功RECV: 09 01 55 设置失败示例:设置加油机端口为:5787bps,无校验位,8位数据,1位停止SEND: 09 02 00 16 9B 00 03 00RECV: 09 02 AA设置成功RECV: 09 02 55 设置失败19:查询透传串口参数命令实体:串口号读卡器返回:串口号+波特率+奇偶校验位+数据位+停止位 示例:小票打印机端口为:9600bps,无校验位,8位数据,1位停止SEND: 19 01RECV: 19 01 00 25 80 00 03 00 0A:设置按键回显,用户有按键时在哪个地方显示用户按的内容命令实体:回显行号+回显横向坐标+回显类型读卡器返回:返回接收到完全一致的消息行号:01-04横向坐标:01-80 代表1-128点回显类型:01 明文 02 密码(*)03关闭(不接受键盘的任何输入)设置显示输入的第二行的第64点阵,明文显示SEND: 0A 02 40 01RECV:0A 02 40 01(回复和接收到一样的数据)0B:取用户的按键内容命令实体:无读卡器返回:用户当前按键的ASCII码组合,如按了确认就加13示例:没有任何按键SEND:0BRECV:0B按了1234SEND:0BRECV:0B 31 32 33 34按了123456并按了【确定】SEND:0BRECV:0B 31 32 33 34 35 36 131B:清控按键内容(单片机在收到命令后,返回当前用户输入缓冲,并清空缓冲和LCD上显示的内容)命令实体:无读卡器返回:当前用户按键数据示例:没有任何按键SEND:1BRECV:1B按了1234SEND:1BRECV:1B 31 32 33 34按了123456并按了【确定】SEND:1BRECV:1B 31 32 33 34 35 36 130C:蜂鸣命令实体: 0C+蜂鸣次数(1字节)+蜂鸣时长(1字节*100ms)+每次间隔时长 (1字节 *100ms)+ 校验读卡器返回:回复和接收到一样的数据示例:SEND:0C 03 02 03 RECV:0C 03 02 03 单片机收到后,蜂鸣3次,每次持续200ms 间隔300ms0D:设置IC卡读写密码。命令实体:IC卡读写密码(6字节)读卡器返回:回复和接收到一样的数据示例:读写密码:F1 F2 F3 F4 F5 F6SEND:0D F1 F2 F3 F4 F5 F6 RECV:0D F1 F2 F3 F4 F5 F6 0E:清空LCD显示,单行清空命令实体:行号读卡器返回:回复和接收到一样的数据0F:清空LCD显示,全部清空命令实体:行号读卡器返回:回复和接收到一样的数据10:加油机串口扩展锁存(怕D1命令中切换通道的速度不够快,可提前使用此命令进行 锁存)命令实体:通道号(从01到08,8个通道)返回:与收到的命令一样示例:锁存第三通道SEND:10 03RECV:10 0311:向加油机串口发送数据命令实体:通道号+等待时长(1字节 *10ms)+需要透传的数据返回:通道号+加油机返回的数据示例:向3号扩展的串口通道的加油机发送:33 44 55 66 命令,并等120毫秒将加油机返回的数据转发给PC,SEND:03 0C 33 44 55 66等待:0C (12*10) 120msRECV:03 1A 1B 1C 1D假如加油机返回1A 1B 1C 1DRECV:03 加油机没

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论