當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]在S3C2410A上實(shí)現(xiàn)MDB/ICP協(xié)議

摘要:為了讓ARM處理器芯片S3C2410A支持MDB/ICP協(xié)議,使功能強(qiáng)大的嵌入式處理器成為VMC設(shè)備來(lái)提升自動(dòng)售貨機(jī)的軟件系統(tǒng)功能,采用逆推的思維方式,構(gòu)造不同MDB總線(xiàn)數(shù)據(jù),設(shè)置S3C2410A UART不同的接收模式。根據(jù)軟件試驗(yàn)結(jié)果,利用S3C2410A芯片設(shè)計(jì)的bug,得到了一種讓S3C2410A完美支持MDB協(xié)議的巧妙方法,具有較高的實(shí)際應(yīng)用價(jià)值。
關(guān)鍵詞:MDB/ICP協(xié)議;S3C2410A;智能多媒體零售終端;UART

引言
    MDB/ICP廣泛應(yīng)用于自助售賣(mài)系統(tǒng),實(shí)際上已經(jīng)成為自助售賣(mài)系統(tǒng)的行業(yè)標(biāo)準(zhǔn)通信協(xié)議。國(guó)內(nèi)也有采用這個(gè)標(biāo)準(zhǔn)的產(chǎn)品,基本上都是采用51單片機(jī)作為硬件解決方案,讓功能更強(qiáng)大的處理器S3C2410A支持該協(xié)議,可以大大提升自助售賣(mài)系統(tǒng)的軟硬件功能。
    基于ARM處理器提供了一種讓高端處理器支持MDB/ICP的靈活方法,在該方法的引導(dǎo)下,也可以廣泛應(yīng)用在MIPS、Power PC等非ARM處理器芯片上,有很強(qiáng)的行業(yè)實(shí)用性。

1 MDB/ICP協(xié)議概述
    MDB/ICP協(xié)議(Multi-Drop Bus/Internal Communication Protocol)是歐洲售貨機(jī)制造者協(xié)會(huì)制定的一套用于協(xié)調(diào)自動(dòng)售貨機(jī)的主控制器(VMC)與多個(gè)外設(shè)(硬幣機(jī)、讀鈔機(jī)等)之間通信的協(xié)議。硬幣機(jī)和讀鈔機(jī)的標(biāo)準(zhǔn)首先是由Coinco在美國(guó)可口可樂(lè)公司的指定下開(kāi)發(fā)的。這個(gè)標(biāo)準(zhǔn)于1993年被NAMA(National Automatic Merchandising Association)協(xié)會(huì)采用,經(jīng)過(guò)一個(gè)專(zhuān)門(mén)的工作組修訂后,于1994年被EVMMA(Euro-pean Vending Machine Manufacturers Association)采用。當(dāng)前的最新協(xié)議版本version 4.O在2009年4月由NAMA和EVA(European Vending Association)共同制定。
1.1 MDB協(xié)議串行位格式
    MDB接口是工作在9 600 bps波特率的主從型串行總線(xiàn)接口,所有外圍設(shè)備(例如硬幣機(jī)、紙幣機(jī)、讀卡器等)均為主控制器VMC的從機(jī)。所有外圍設(shè)備與VMC之間的通信方式都一致。最多支持32個(gè)外設(shè)。
    MDB協(xié)議的串行位格式為:9600 bps、1個(gè)起始位、8位數(shù)據(jù)、1個(gè)模式位(mode bit)和1個(gè)停止位。
1.2 MDB/ICP通信協(xié)議幀要求
    在MDB總線(xiàn)上,VMC通過(guò)廣播方式向外發(fā)送命令。第一字節(jié)為地址字節(jié)(高5位為尋址信息,低3位為對(duì)外設(shè)的指令)。該字節(jié)被所有的外設(shè)讀取,但只有符合地址字節(jié)所指定的外設(shè)才處理其后的數(shù)據(jù)字節(jié),并做出反應(yīng)。在VMC到外設(shè)的數(shù)據(jù)中,地址字節(jié)的方式位被置1,數(shù)據(jù)字節(jié)的方式位被置0,外設(shè)通過(guò)檢驗(yàn)接收到的方式位確認(rèn)是地址命令還是數(shù)據(jù)。當(dāng)數(shù)據(jù)從外設(shè)發(fā)送到主機(jī)時(shí)(最長(zhǎng)36字節(jié)),最后送出的字節(jié)方式位被置1,標(biāo)志著數(shù)據(jù)發(fā)送完畢。
    VMC向外設(shè)傳送的指令由一個(gè)地址字節(jié)、一些可選的數(shù)據(jù)字節(jié)與一個(gè)校驗(yàn)和(CHK)字節(jié)構(gòu)成。發(fā)送指令后,外設(shè)應(yīng)答VMC的通信塊可以由一個(gè)數(shù)據(jù)塊和一個(gè)CHK字節(jié)組成,或者一個(gè)應(yīng)答字節(jié)(ACK),或者一個(gè)無(wú)應(yīng)答字節(jié)(NAK)。如果外設(shè)應(yīng)答數(shù)據(jù)塊的話(huà),VMC將通過(guò)一個(gè)應(yīng)答字節(jié)(A-CK)、無(wú)應(yīng)答字節(jié)(NAK)或發(fā)字節(jié)(RET)應(yīng)答外設(shè)傳回的數(shù)據(jù)。

2 MDB/ICP協(xié)議應(yīng)用
    自動(dòng)售貨機(jī)(Vending Machine)是一種全新的商業(yè)零售形式,20世紀(jì)70年代自日本和歐美發(fā)展起來(lái)。它又被稱(chēng)為24小時(shí)營(yíng)業(yè)的微型超市。在日本,70%的罐裝飲料是通過(guò)自動(dòng)售貨機(jī)售出的。全球著名飲料商可口可樂(lè)公司在全世界就布有50萬(wàn)臺(tái)飲料自動(dòng)售貨機(jī)現(xiàn)在,自動(dòng)售貨機(jī)產(chǎn)業(yè)正在走向信息化并進(jìn)一步實(shí)現(xiàn)合理化。例如實(shí)行聯(lián)機(jī)方式,通過(guò)第三方無(wú)線(xiàn)網(wǎng)絡(luò)將自動(dòng)售貨機(jī)內(nèi)的庫(kù)存信息和銷(xiāo)售記錄及時(shí)地傳送各營(yíng)業(yè)點(diǎn)的電腦中,從而確保了商品的發(fā)送、補(bǔ)充以及商品選定的順利進(jìn)行,實(shí)現(xiàn)自動(dòng)售貨設(shè)備的全球連鎖。并且可以通過(guò)第三方網(wǎng)絡(luò)對(duì)售貨終端進(jìn)行遠(yuǎn)程控制和監(jiān)測(cè),通過(guò)以太網(wǎng)控制可以實(shí)現(xiàn)設(shè)備的云操作,將來(lái)也可以接入物聯(lián)網(wǎng)實(shí)現(xiàn)web操作購(gòu)物。在市場(chǎng)對(duì)功能提出日益復(fù)雜化的要求下,傳統(tǒng)的51單片機(jī)+MDB設(shè)備的解決方案難以滿(mǎn)足市場(chǎng)的需求。在ARM處理器日漸流行的今日,采用S3C2410A來(lái)作為VMC是滿(mǎn)足客戶(hù)需求的解決方案。S3C2410A芯片功能模塊豐富,軟件支持良好,可以使Linux操作系統(tǒng)實(shí)現(xiàn)更為復(fù)雜的用戶(hù)功能需求。圖1是港灣教育售貨系統(tǒng)的框圖。[!--empirenews.page--]
    由圖1可知,該方案融合當(dāng)前最主流的嵌入式系統(tǒng)接口,足以實(shí)現(xiàn)功能強(qiáng)大的售貨系統(tǒng)來(lái)滿(mǎn)足客戶(hù)的需求。


2.1 S3C2410A芯片UART串行位格式
    通過(guò)對(duì)S3C2410A數(shù)據(jù)手冊(cè)的研讀,會(huì)發(fā)現(xiàn)當(dāng)前一些主流的處理器芯片,比如S3C2410A,UART模塊不像傳統(tǒng)的51單片機(jī)一樣正好滿(mǎn)足MDB協(xié)議的串行位協(xié)議格式,S3C2410A的UART數(shù)據(jù)格式:最高115 200 bps、1個(gè)起始位、5~8位數(shù)據(jù)、1個(gè)奇偶校驗(yàn)位(odd/even parity bit)、1或2個(gè)停止位。
2.2 S3C2410A支持MDB/ICP應(yīng)用方法
    如果要想支持MDB協(xié)議,S3C2410A沒(méi)有mode bit可用,這樣對(duì)MDB總線(xiàn)上的數(shù)據(jù)判斷是地址字節(jié)還是數(shù)據(jù)字節(jié)和總線(xiàn)一幀數(shù)據(jù)什么時(shí)候結(jié)束在S3C2410A上無(wú)法判斷識(shí)別,這對(duì)最初制定的方案提出了嚴(yán)重的挑戰(zhàn),迫不得已要對(duì)S3C2410A成為MDB/IPC協(xié)議的VMC設(shè)備的可能性進(jìn)行預(yù)研,最直接的方式就是想到利用S3C2410A的可選的奇偶校驗(yàn)位的值來(lái)逆推MDB設(shè)備的mode bit的值,讓奇偶校驗(yàn)位來(lái)充當(dāng)MDB mode bit的作用,從而來(lái)判斷出S3C2410A接收MDB設(shè)備傳送的數(shù)據(jù)是否是結(jié)束了。經(jīng)過(guò)分析就可以得到表1所列的推理。


     通過(guò)上面的分析,開(kāi)始編寫(xiě)測(cè)試程序,結(jié)果發(fā)現(xiàn)S3C2410A的串口設(shè)計(jì)的一個(gè)bug:當(dāng)配置UART LINECONTROL REG ULCONn的BITS[5:3]為“101”,選擇evenparity接收MDB總線(xiàn)的數(shù)據(jù)的時(shí)候,無(wú)論是構(gòu)造出來(lái)的數(shù)據(jù)1的位數(shù)為奇數(shù)個(gè)還是偶數(shù)個(gè)搭配具體的模式位,發(fā)現(xiàn)S3C2410A的UART ERRORSTATUS REG(UERSTATn)的bit2 frame error位并不能準(zhǔn)確的置位。想想S3C2410A這么流行的芯片竟然還有設(shè)計(jì)不完美的地方,幾乎要放棄的時(shí)候,本著一切皆有可能的原則,既然芯片都不可靠了,就索性測(cè)試一下,按照表1把ULCONn的BITS[5:3]設(shè)置為“100”,選擇odd parity接收數(shù)據(jù)。按常理推斷even parity的結(jié)果應(yīng)該和odd parity結(jié)果是一樣的,抱著試一試的態(tài)度,構(gòu)造測(cè)試代碼,結(jié)果出現(xiàn)了明顯的規(guī)律:當(dāng)模式位為“O”的時(shí)候,UERSTATn的bit2 frame error位可以準(zhǔn)確的置位;當(dāng)模式位為“1”的時(shí)候,UART TX/RX STATUS REG(UTRSTATn)的bit 0(receive buffer data ready)可以準(zhǔn)確置位,正常接收數(shù)據(jù)。得到這個(gè)規(guī)律之后,2410 VMC設(shè)備就可以準(zhǔn)確判斷出MDB設(shè)備發(fā)送過(guò)來(lái)的數(shù)據(jù)是否是收到了結(jié)束標(biāo)志。另外,當(dāng)VMC向MDB設(shè)備發(fā)送數(shù)據(jù)的時(shí)候,可以按照協(xié)議要求當(dāng)要發(fā)送地址字節(jié)時(shí)可設(shè)置ULCONn的BITS[5:3]為“110”,代表parity forced/checked as 1來(lái)把奇偶位強(qiáng)制1充當(dāng)模式位,地址字節(jié)發(fā)送結(jié)束之后調(diào)整ULCONn的BITS[5:3]為“111”來(lái)發(fā)送數(shù)據(jù)字節(jié)。至此,S3C2410A充當(dāng)MDB VMC設(shè)備可以得到完美的解決。下面是VMC接收總線(xiàn)數(shù)據(jù)的部分調(diào)試代碼片段。VMC向總線(xiàn)發(fā)送數(shù)據(jù)相對(duì)比較簡(jiǎn)單,有興趣的讀者可以與筆者交流探討。[!--empirenews.page--]

結(jié)語(yǔ)
    本文給出了一種在嵌入式處理器ARM(S3C2410A)上實(shí)現(xiàn)MDB/ICP協(xié)議的實(shí)現(xiàn)方法,在工程實(shí)踐中,證明該方法準(zhǔn)確可靠,滿(mǎn)足了市場(chǎng)的需要,拓展了支持該協(xié)議的硬件平臺(tái),豐富了支持該協(xié)議設(shè)備的軟件功能接口。本文的實(shí)現(xiàn)方法也可以應(yīng)用在其他嵌入式處理器上。
 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉