<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > SmartLock并口單片機軟件狗加密技術(shù)

SmartLock并口單片機軟件狗加密技術(shù)

作者: 時(shí)間:2009-04-09 來(lái)源:網(wǎng)絡(luò ) 收藏

由于開(kāi)發(fā)者和用戶(hù)帶來(lái)了許多不便和麻煩,因此,全球業(yè)的趨勢是開(kāi)發(fā)不,依靠版權法來(lái)保護軟件開(kāi)發(fā)者的權益。但對于一些大型的工程應用軟件系統如:AutoCAD、Xilinx FPGA開(kāi)發(fā)系統等,由于銷(xiāo)量小、成本高,不得已仍然需要使用軟件。另外,對于某些敏感行業(yè)的應用軟件也必須實(shí)行,對程序代碼進(jìn)行保護。

本文引用地址:http://dyxdggzs.com/article/173792.htm

  早期的方法有:軟盤(pán)或硬盤(pán)加密、加密卡等,由于加密性能、兼容性能或使用不方便等方面的原因而被淘汰。目前廣為流行的是軟件狗硬件電路加密法,其中又以使用的加密最為可靠。其硬件通常都帶有智能抗分析,不可復制,且加密方式靈活、工作可靠、運行速度快、使用方便,不失為的一種優(yōu)選方法。

  軟件狗加密系統的硬件部分外形類(lèi)似火柴盒,兩頭分別帶有一個(gè)IEEE-1284的公頭和母頭,串接在和打印機之間。軟件狗使用的是Atmel公司的89C2051,芯片從微機取電,通過(guò)與加密軟件進(jìn)行通信,系統主要使用技術(shù)實(shí)現軟件加密。

1 Smart Lock系統的硬件設計

  通過(guò)研究微機打印口接口電路、IEEE-1284通信標準和89C2051型特性,設計出加密系統的硬件電路如圖1所示。有89C2051單片機、3個(gè)鍺二極管、1個(gè)12MHz晶振、2個(gè)30pF瓷片電容和1個(gè)電阻共8個(gè)元件。系統從并行口中共引出了11根端口線(xiàn),其中有8根數據線(xiàn)D0~D7、1根狀態(tài)線(xiàn)(低電平有效 ,當打印機接收完一字節數據允許微機發(fā)送下一字節數據時(shí),發(fā)給微機信號)、1根控制線(xiàn)(低電平有效,打印機自動(dòng)換行信號)和地線(xiàn)GND。

微機的標準并不提供+5V電源,所以只有從驅動(dòng)能力較強的數據口“借電”。依據IBM PC AT/XT設計標準,并行口數據位的高電平(4.5V)輸出電流為2.5mA(舊式的TTL型)或15mA(CMOS型),而89C2051單片機的典型工作電流為5.5mA/3V,工作頻率為12MHz。所以使用D4~D6三根數據線(xiàn)經(jīng)鍺二極管并在一起作為單片機電源(采用鍺管的原因是因為它的壓降較小,只有0.4V)。同時(shí)為減少軟件狗硬件的功耗,電路設計得極其簡(jiǎn)潔,除了單片機,沒(méi)有其它有源器件。

  單片機復位使用的是上電自動(dòng)復位電路。因此微機對并行口供電幾百毫秒之后,單片機才進(jìn)入正常工作狀態(tài)。

2 并口通信協(xié)議

  軟件狗使用數據口的D0~D3及D7作為微機向單片機傳送數據的前向數據通道(一次送半字節數據,用D7位標志高/低半字節);并口控制/狀態(tài)信號中的平時(shí)不常用,所以這里用來(lái)作為微機向單片機傳送數據時(shí)的握手信號。信號為高電平,則表示微機已準備好待傳送數據,此協(xié)議中稱(chēng)為DR(data ready)信號;信號為低電平,表示單片機已準備好接收數據,此協(xié)議中稱(chēng)為PR(peripheral ready)信號。

  軟件狗從微機接收數據的時(shí)序如圖2所示。具體步驟是:

  (1)微機中的加密程序將DR()控制線(xiàn)設置為0,然后在并口的D4~D6數據線(xiàn)上給一個(gè)負脈沖后再置恒1,使軟件狗復位啟動(dòng);

  (2)加密程序延時(shí)300ms后,設置D7為0,表示傳送的是數據的低半字節;

  (3)加密程序將需要傳送的數據放到并口的D0~D3;

  (4)加密程序在DR控制線(xiàn)上給出一個(gè)正脈沖,通知軟件狗數據已準備好;

  (5)軟件狗收到DR信號后從D0~D3線(xiàn)上讀取數據,同時(shí),從D7位可以了解這半字節數據是低位還是高位。讀完數據后在PR()狀態(tài)線(xiàn)上給出負脈沖,通知微機數據已讀完,可以進(jìn)行下一次傳送;

  (6)加密程序收到PR信號后,即進(jìn)行下一輪的數據傳送,直到最后所有數據傳送完畢或一定時(shí)間后仍沒(méi)有收到PR信號,則出錯退出。


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>