CcTalk (網絡協議)
ccTalk(發音作「see-see-talk」),是一種廣泛使用的串行協議,遍及貨幣交易和銷售時點情報系統行業。如硬幣和紙幣驗鈔機等外部設備在多元化的自動支付設備如交通、票務、投幣電話、娛樂設備以及零售現金管理中建立,使用ccTalk與主機控制器通信。
概述
該協議是在一家位於英格蘭西北部港市曼徹斯特郊外的名為Coin Controls (因此稱coin-controls-talk,該公司後改名為Money Controls,自2010起叫Crane Payment Solutions)的公司開發的,主要由工程師William Barson完成。該協議的第一個版本發布於1996年。
該協議使用類似RS232的方式進行字符幀的異步傳輸。其主要區別是,它為半雙工通信使用單一的雙向通信數據線而非分開的傳輸和接收線。它在TTL voltage下操作,並且是「multi-drop」的,即外圍設備可以連接到一個共同的總線和在邏輯上是由設備地址分離。在ccTalk總線上的每個外設都必須有一個唯一的地址。
初始的協議操作于于4,800波特後續版本的標準化在9,600波特。低成本的橋接芯片現在可以從很多廠家得到,以允許ccTalk以至少1 Mbit/s的波特率通過USB接口運行。
ccTalk協議堆棧已經從極小的512字節的ROM微芯片微控制器到強大的ARM7-32位處理器的範圍的設備上實現。
該協議支持用於電子設備的所有標準操作如固件閃存升級、數據和詳細的診斷信息的安全傳輸.
ccTalk的優勢包括低成本UART技術、簡單易懂的數據包結構、易於擴展的命令接口和無需許可的要求。後者使得協議在類似開源軟件這樣擁擠而競爭激烈的領域得到了很好的普及。
在2010年,DES加密被加入了特定命令以便對對總線的攻擊做出更具彈性的處理。
一個cctalk信息包示例
TX data = 002 000 001 245 008 _____
- 002 = 目標地址
- 000 = 零數據字節
- 001 = 源地址
- 245 = 命令頭『請求設備類別ID』
- 008 = 校驗和 ( 002 + 000 + 001 + 245 + 008 = 256 = 0 mod 256 )
這是從地址1(主機)發至外設地址2以查明其是什麼的信息。
RX data = 001 013 002 000 067 111 105 110 032 065 099 099 101 112 116 111 114 022
- 001 = 目標地址
- 013 = 13個字節的數據
- 002 = 源地址
- 000 = 應答頭
- 067…114 = 『Coin Acceptor』的ASCII碼
- 022 = 校驗 (所有數據包的字節總和是零)
從地址2返回至地址1的應答將其標識為投幣。
硬幣和票據命名
多年來形成了許多源於ccTalk的相關的標準。例如,全球標籤識別世界的永久性替換硬幣和鈔票。
在ccTalk中一個 a coin有6個字符的標識符。 <2-字國家代碼><3-l字值><1-字版本代碼>
國家代碼由ISO 3166確定。發行代碼指定到不同的發行日期或相同硬幣的特別幣種。
例:
- US025A United States 25c
- GB010B Great Britain 10p
- EU200A Euro 2€
鈔票效仿了相同的形式,但是分配了4個字符給值,並且有一個相關的比例轉換因子,通常是x100,以及國家。
例:
- US0001A United States $1
- GB0020A Great Britain £20
- EU0005A Euro 5€