1、SDPP协议简介
随着中国IT技术的普及和发展,市场上正日益兴起各种具有多媒体功能的多功能终端系统设备。这些设备往往不仅提供传统的终端数据查询业务,还提供一些新兴的电子购物等功能。在这个系统的设计过程中,开发工程师往往面对数目繁多的外围控制设备而大伤脑筋。出于成本考虑,终端系统主机常常采用商用或工控PC系统。而PC系统的资源总是有限的,为了满足客户的众多要求,工程师们不得不在硬件的扩展上下功夫。但随着各种扩展板卡的增多,系统的可靠性问题又面临新的考验。不仅如此,产品的开发周期也因各种不确定因素而加长。许多项目往往由此而错失市场良机,胎死腹中。
SDPP协议是德立达公司针对上述情况而设计的一种总线型终端外围设备控制协议。它是一种可以使用RS232C驱动的四总线系统(+24V,GND,TXD,RXD)协议,符合一个主机多个从机的半双工通讯要求。目前,该协议已成功应用于多媒体智能售卡机和无人值守停车场系统之中。
SDPP(Serial Data Packet Protocol)是一个简单可靠的串行数据包通讯协议。该协议以数据包方式传送数据,在每一个传送的数据包中都采用16位CRC校验来保证数据的完整性、正确性和可靠性。该协议采用“一问一答”的形式进行数据传输。即主机每发送一个数据包,从机都会返回一个数据包。这些数据包都以9600的波特率按二进制方式传输。
2、如何使用SDPP协议设计多卡机?
市场所售发卡器TCD-100S、TCD-200S和TCD-300S都提供符合SDPP协议的RS232C通讯接口和RS485通讯接口,这为设计多卡机提供了极大的方便。开发工程师所要做的只是根据SDPP协议写一段代码嵌入到系统之中。对一个程序员来说,写这段串口通讯代码并不难,开发周期也大大缩短(由原来的几个月缩短到几天)。
主控PC与发卡器之间的硬件连接可以有RS232C和RS485两种方式。RS485对发卡器与主控PC之间距离较远的系统比较适用。对大多数终端设备而言,主控PC与发卡器之间的距离很近,连线距离最多只有两三米远,用RS232C是最简单有效的方式。下图所示是其硬件连接示意图。所要注意的是:发卡器作为从机设备,它们的地址必须互不相同。
发卡器控制软件的编写主要有以下几个方面:
2.1、如何查询发卡器的状态?
在通常状况下,主机只需向从机发送查询(POLL)命令,就会返回从机的当前状态。 请求从机状态命令(Request SWS)主要在调试发卡器时使用。
2.2、如何控制发卡器发卡?
在向发卡器发送发卡命令之前,应先发送查询命令确认发卡器已处于“准备好(Ready)”状态。在发卡器收到正确的发卡命令后,主机可用POLL命令获取发卡器状态。
3、发卡器如何与地感器连接?
市场上提供的TCD-210P和TCD-310P发卡器提供了地感输入信号和其它一些附加的控制信号,大大简化发卡器与系统控制主机之间的控制联接,从而提高系统的可靠性。
3.1、发卡器与主机可以只用两根控制信号连接:
(1)、Ready信号。主机可以通过此信号来确定发卡器是否处于就绪状态。如果发卡器处于未就绪状态,则有可能发卡器未联接,或发卡器卡仓内无卡,或出现其它故障。
(2)、TakenOK信号。主机在读卡正确后,如果收到发卡器输出的TakenOK信号,就可以控制道闸开启。
3.2、发卡器与地感输出的联接:
将地感器的输出与发卡器的VD信号连接。如果地感器是开集电极输出阻抗,则发卡器必须与地感器共地;如果地感器是继电器输出阻抗,则地感输出的一个触点接在发卡器的VD信号,另一触点接GND。
3.3、发卡器与机箱面板的联接:
在发卡机的机箱面板上有一发卡按钮,将按钮开关的一端与发卡器的Payout信号相连接,另一端与发卡器的GND端相连接。
4、发卡器在使用中的常见问题解答
(1)、在发卡时电机要反复转动几次才能发卡
|
序号 |
原因 |
解决办法 |
|
1 |
卡片未整理好 |
自动整理或人工处理 |
|
2 |
卡箱底部摩擦轮打滑 |
用棉签蘸酒精清洗摩擦轮 |
|
3 |
卡片太脏,附有粘性物 |
清洁卡片,并用棉签蘸酒精清洗摩擦轮 |
|
4 |
卡片厚度调节不当 |
重新调整卡片厚度 |
(2)、在电机转动时同步带打滑
这主要是同步带张紧度没有调节好。重新调整张紧轮的位置,改变同步带的张紧度即可。
(3)、发卡时卡片未送到正常位置,电机就停止转动。
这可能是同步带张得太紧而导致机器负荷过重所致。解决方法是重新调节张紧度使负荷正常。
5、SDPP数据包命令代码实例
查询命令:7FH,30H,01H,07H,8BH,0D1H
发卡命令:7FH,30H,01H,13H,8BH,0A9H
禁止命令:7FH,30H,01H,09H,0BH,0F6H
允许命令:7FH,30H,01H,0AH,0BH,0FCH
清理命令:7FH,30H,02H,08H,01H,070H,003H