周新淳
(寶雞文理學(xué)院 陜西 寶雞 721016)
一位硬件隨機(jī)數(shù)發(fā)生器的設(shè)計(jì)與仿真
周新淳
(寶雞文理學(xué)院 陜西 寶雞 721016)
文中設(shè)計(jì)了一種隨機(jī)數(shù)發(fā)生電路,可以生成一位十進(jìn)制隨機(jī)數(shù),電路分為開(kāi)關(guān)電路、脈沖產(chǎn)生電路、計(jì)數(shù)電路和顯示電路,采用常用芯片設(shè)計(jì),產(chǎn)品方便可靠,成本低廉。并利用仿真軟件進(jìn)行數(shù)據(jù)統(tǒng)計(jì),仿真結(jié)果表明該電路可以有效實(shí)現(xiàn)隨機(jī)產(chǎn)生數(shù)碼0到9的功能。
隨機(jī)數(shù);硬件電路;Multisim;仿真
現(xiàn)代生活對(duì)隨機(jī)數(shù)的依賴越來(lái)越多,比如彩票搖號(hào),車牌搖號(hào),抽取幸運(yùn)觀眾等等。很多地方要求有使用方便、安全快捷的隨機(jī)數(shù)產(chǎn)生方法。當(dāng)前主流的隨機(jī)數(shù)電路分為兩種,軟件型和硬件型。軟件型的隨機(jī)數(shù)產(chǎn)生電路方便快捷,但是安全性不高,而且必須借助電腦運(yùn)行,在一些重要場(chǎng)合往往不方便使用,而且有安全漏洞。硬件隨機(jī)數(shù)使用簡(jiǎn)單,做成成品后杜絕了被修改的可能性,安全性較高[1-2]。
文中設(shè)計(jì)了一種硬件隨機(jī)數(shù)發(fā)生電路,使用按鍵控制,可以產(chǎn)生一位0~9或者1~9的隨機(jī)數(shù),如果需要多位隨機(jī)數(shù),可多次運(yùn)行。并利用Multisim軟件對(duì)其進(jìn)行了仿真,結(jié)果顯示該電路可以滿足日常生活中對(duì)隨機(jī)數(shù)電路的要求[3]。
本設(shè)計(jì)主要利用了數(shù)據(jù)高頻循環(huán),低頻采集的概念產(chǎn)生隨機(jī)數(shù)。電路結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
555定時(shí)器是一種模擬和數(shù)字功能相結(jié)合的中規(guī)模集成器件,使用555定時(shí)器可以很方便地構(gòu)成單穩(wěn)態(tài)觸發(fā)器、施密特觸發(fā)器和多諧振蕩器[4],在各種電子制作領(lǐng)域都有很廣泛的應(yīng)用。本設(shè)計(jì)中利用555芯片構(gòu)成多諧振蕩器,產(chǎn)生高頻脈沖,為了滿足隨機(jī)性和保密性,根據(jù)需要可將脈沖頻率調(diào)至100 kHz以上。十進(jìn)制計(jì)數(shù)器用于產(chǎn)生0~9或者1~9的數(shù)據(jù),可在高頻脈沖驅(qū)動(dòng)下進(jìn)行數(shù)據(jù)的高速循環(huán)計(jì)數(shù)[5]。開(kāi)關(guān)J2用于產(chǎn)生寄存器電路的觸發(fā)信號(hào),當(dāng)其接通有效時(shí),可以將計(jì)數(shù)器中相對(duì)應(yīng)的某一位數(shù)字送至顯示電路進(jìn)行顯示并進(jìn)行鎖存。根據(jù)實(shí)際用途,開(kāi)關(guān)J1作為數(shù)據(jù)范圍切換按鈕,可用于在0~9和1~9兩種數(shù)據(jù)范圍的切換。開(kāi)關(guān)J3為電源開(kāi)關(guān),控制整個(gè)電路的電源。
1.1 高頻脈沖電路設(shè)計(jì)
利用555芯片構(gòu)建多諧振蕩器電路,555芯片的電源范圍很寬,可以達(dá)到5-12 V[6],在實(shí)際使用過(guò)程中,可是使用電池組供電,使用便捷。多諧振蕩器電路如圖2所示。
圖2 多諧振蕩器電路
此電路為555芯片的經(jīng)典應(yīng)用,可用來(lái)產(chǎn)生高頻矩形脈沖信號(hào),脈沖信號(hào)頻率為式(1)所示,輸出頻率由電路中電阻以及電容決定[7]。在實(shí)際應(yīng)用過(guò)程中,可以將電阻更換為電位器,從而可以改變頻率,進(jìn)一步增加隨機(jī)性。
將高頻脈沖信號(hào)送至計(jì)數(shù)器電路,作為計(jì)數(shù)器的時(shí)鐘脈沖信號(hào)。
1.2 計(jì)數(shù)及寄存電路設(shè)計(jì)
計(jì)數(shù)電路應(yīng)該讓數(shù)據(jù)在0~9或1~9中間高速循環(huán)計(jì)數(shù),所以應(yīng)該采用十進(jìn)制計(jì)數(shù)器[8]。本設(shè)計(jì)中采用十進(jìn)制計(jì)數(shù)器74HC160完成,將555芯片產(chǎn)生的高頻時(shí)鐘脈沖接至計(jì)數(shù)器芯片的CLK端口,并將EP、ET端口接高電平,使計(jì)數(shù)芯片正常進(jìn)行加法計(jì)數(shù)。這時(shí),在CLK脈沖的作用下,74HC160工作在0~9循環(huán)計(jì)數(shù)的狀態(tài),計(jì)數(shù)頻率為CLK脈沖的頻率。另外,由于74HC160輸出不具有鎖存功能,所以直接顯示結(jié)果的話,結(jié)果不能保存。為了達(dá)到按鍵后結(jié)果能穩(wěn)定顯示在LED數(shù)碼管上,所以在74HC160的輸出端口接一個(gè)4輸入的D鎖存器74LS175,此鎖存器可以在CLK有效的瞬間將輸入值無(wú)損傳輸至輸出,并且在CLK有效信號(hào)消失后維持輸出不變,從而將采集到的隨機(jī)數(shù)穩(wěn)定顯示[9]。74LS175的CLK信號(hào)由彈簧開(kāi)關(guān)J2產(chǎn)生,J2常接低電平,按下后接高電平,按下可以產(chǎn)生一個(gè)上升沿從而驅(qū)動(dòng)鎖存器工作。電路如圖3所示。
圖3 計(jì)數(shù)器電路和鎖存器電路
1.3 數(shù)據(jù)范圍切換開(kāi)關(guān)設(shè)計(jì)
日常生活中,隨機(jī)數(shù)的產(chǎn)生有0~9和1~9兩種應(yīng)用場(chǎng)景。74HC160的進(jìn)位輸出發(fā)生在當(dāng)輸出為1001(9)時(shí),也就意味著要實(shí)現(xiàn)這兩種區(qū)別,必須改變計(jì)數(shù)起點(diǎn)。為了滿足這一要求,在計(jì)數(shù)器74HC160的數(shù)據(jù)輸入端加入開(kāi)關(guān)J1,如圖4所示。并且將計(jì)數(shù)器設(shè)置為置數(shù)形式[10],具體為當(dāng)計(jì)數(shù)值達(dá)到9時(shí),進(jìn)位輸出端RCO自動(dòng)輸出高電平,通過(guò)反相器將置數(shù)允許信號(hào)送至置數(shù)端LOAD。74HC160具有異步復(fù)位和同步置數(shù)功能。此時(shí),置數(shù)LOAD接收到有效信號(hào),在下一個(gè)CLK脈沖驅(qū)動(dòng)下,會(huì)將輸入DCBA的當(dāng)前值送至輸出端QDQCQBQA,并從當(dāng)前值開(kāi)始計(jì)數(shù)。通過(guò)開(kāi)關(guān)J1決定輸入端A口接VCC還是接GND,從而決定計(jì)數(shù)起點(diǎn)是0000(0)還是0001(1)。
圖4 范圍切換開(kāi)關(guān)
圖5為整體電路仿真圖,將開(kāi)關(guān)J1至于接地狀態(tài),使起始值工作于0000狀態(tài),即隨機(jī)數(shù)會(huì)在0~9中產(chǎn)生。接通電源J3使電路處于工作狀態(tài),每按一次J2按鍵,則可產(chǎn)生一位隨機(jī)數(shù)。由于計(jì)數(shù)器的工作頻率為100 kHz,而人工按鍵的速度遠(yuǎn)遠(yuǎn)低于這一頻率。所以,保證了產(chǎn)生數(shù)字的不可預(yù)知性[11]。在實(shí)際使用中,可以將電路R6改裝為電位器,在每次產(chǎn)生隨機(jī)數(shù)前,都手動(dòng)改變其電阻值,從而改變CLK的計(jì)數(shù)頻率,從而進(jìn)一步提高隨機(jī)性。
圖5 隨機(jī)數(shù)產(chǎn)生電路仿真圖
在Multisim軟件中對(duì)隨機(jī)數(shù)產(chǎn)生電路進(jìn)行仿真,每按鍵100下作為一組數(shù)據(jù),統(tǒng)計(jì)0-9各個(gè)數(shù)字出現(xiàn)的次數(shù),連續(xù)測(cè)量10組數(shù)據(jù),并對(duì)其進(jìn)行平均。做出如圖6所示隨機(jī)結(jié)果柱狀圖。從結(jié)果來(lái)看,此電路可以有效的產(chǎn)生一位隨機(jī)數(shù),隨機(jī)結(jié)果近似平均分布,可以滿足日常使用對(duì)隨機(jī)數(shù)的要求[12]。
圖6 隨機(jī)結(jié)果
有時(shí)候除了顯示1位數(shù)字外,還需要循環(huán)顯示多位數(shù)字[13]。如圖7所示,是一種多位循環(huán)顯示的改進(jìn)電路。本設(shè)計(jì)以四位顯示為例,仍以上述電路為主要結(jié)構(gòu)。將鎖存器74LS175的4位輸出分別接至BCD碼-七段碼譯碼器4511,可以實(shí)現(xiàn)4位共陰數(shù)碼管同時(shí)顯示。為了達(dá)到逐位顯示的目的,使用計(jì)數(shù)器和2-4譯碼器組成逐位片選系統(tǒng)。74HC160接受彈簧按鍵S1作為脈沖CLK信號(hào),每按一下實(shí)現(xiàn)加1操作。輸出接2-4譯碼器74HC139的輸入端,每按鍵一次,74HC139的4位輸出Y0Y1Y2Y3依次有效,Y0Y1Y2Y3分別接至4個(gè)數(shù)碼譯碼器4511的BL端口,BL端口為輸出消隱控制端,當(dāng)其有效時(shí)該譯碼器所對(duì)應(yīng)的數(shù)碼管亮[14]。74HC139的輸出在計(jì)數(shù)器CLK的驅(qū)動(dòng)下為依次有效,從而實(shí)現(xiàn),4位數(shù)碼管依次亮。數(shù)碼管的數(shù)據(jù)來(lái)自于前述電路的高頻輸出,所以每位數(shù)碼管的顯示都是不同的隨機(jī)數(shù)字,隨機(jī)性可以得到保證[15]。
文中設(shè)計(jì)的隨機(jī)數(shù)電路,采用邏輯電路設(shè)計(jì),常用芯片構(gòu)建,硬件方式產(chǎn)生一位隨機(jī)數(shù),原理簡(jiǎn)單,易于實(shí)現(xiàn),操作方便,可靠性強(qiáng)。結(jié)果隨機(jī)性較強(qiáng),可廣泛應(yīng)用于日常生活中多個(gè)領(lǐng)域[16-18]。
圖7 功能擴(kuò)展
[1]唐玲.基于Multisim的多用信號(hào)發(fā)生器仿真設(shè)計(jì)[J].智能計(jì)算機(jī)與應(yīng)用,2014,12(6):95-97.
[2]周新淳.基于Multisim的拔河游戲機(jī)設(shè)計(jì)與仿真[J].電子設(shè)計(jì)工程,2015,23(315):34-36.
[3]閻石.數(shù)字電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2006.
[4]王毓銀.?dāng)?shù)字電路邏輯設(shè)計(jì)[M].北京:高等教育出版社,2006.
[5]趙家松,黃榮華,嚴(yán)偉榆.基于Multisim 10的電子搖號(hào)器設(shè)計(jì)與仿真[J].電子設(shè)計(jì)工程,2011,7(13):124-125.
[6]羅映祥.基于Multisim 9的數(shù)字電子鐘設(shè)計(jì)與仿真[J].現(xiàn)代電子技術(shù),2010,33(9):184-186.
[7]李旎.基于Multisim 10的彩控變換電路的設(shè)計(jì)與仿真[J].現(xiàn)代電子技術(shù),2013,36(22):124-126.
[8]陳齊平,張文俊,王鋼林,等.基于Multisim的簡(jiǎn)易自動(dòng)售貨機(jī)控制系統(tǒng)設(shè)計(jì)與仿真[J].華東交通大學(xué)學(xué)報(bào),2015,32(6):88-91.
[9]馬路,石立國(guó),王竹剛.基于均勻分布隨機(jī)數(shù)的誤碼發(fā)生器設(shè)計(jì)[J].電子設(shè)計(jì)工程,2013,21(24):146-154.
[10]桂丹.Multisim仿真在電子技術(shù)應(yīng)用中的探索[J].電子技術(shù)與軟件工程,2015(3):83-85.
[11]孫立輝,權(quán)庭蘭.基于Multisim的克拉潑電路設(shè)計(jì)[J].電子技術(shù)與軟件工程,2013(22):123.
[12]高明倫.一種多位計(jì)數(shù)器的設(shè)計(jì)方法[J].電子測(cè)量與儀器學(xué)報(bào),2007,21(6):79-81.
[13]左偉平,蔣麗英,肖姑冬.基于AT89S52單片機(jī)廣告燈控制電路設(shè)計(jì)的教學(xué) [J].中國(guó)西部科技,2011,10(26):80-82.
[14]李旭,張為公.基于科研項(xiàng)目的數(shù)字電路創(chuàng)新型實(shí)驗(yàn)教學(xué)改革[J].實(shí)驗(yàn)室研究與探索,2015(1):168-171.
[15]湯鍇杰,栗燦,王迪,等.基于DS18B20的數(shù)字式溫度采集報(bào)警系統(tǒng)設(shè)計(jì) [J].傳感器與微系統(tǒng),2014,33(3):99-102.
[16]紀(jì)明霞,黃聚義,李濱輝.基于Multisum計(jì)數(shù)器的設(shè)計(jì)與仿真[J].國(guó)外電子測(cè)量技術(shù),2013,32(10)15-18.
[17]程建峰.基于Multisim的多功能8路搶答器的設(shè)計(jì)與仿真[J].工業(yè)儀表與自動(dòng)化裝置,2015(1):31-34.
[18]程建峰.基于Multisim直流穩(wěn)壓電源的仿真分析[J].工業(yè)儀表與自動(dòng)化裝置,2015(4):65-67.
Simulation and design of a hardware random number generator
ZHOU Xin-chun
(Baoji University of Arts and Sciences,Baoji 721016,China)
This paper presents a random number generating circuit,It can generate a random decimal number.The circuit is composed of a switching circuit,a pulse generating circuit,a counting circuit and a display circuit.Use common chip design,The design has the characteristics of convenience,reliability and low cost.And using simulation software for data statistics.The computer simulation results show that the design implements generator of random number from 0 to 9.
random number;hardware circuit;Multisim;simulation
TN709
:A
:1674-6236(2017)06-0019-04
2016-03-21稿件編號(hào):201603276
寶雞市科技局農(nóng)業(yè)攻關(guān)項(xiàng)目(14NYGG-5-7);寶雞文理學(xué)院院級(jí)重點(diǎn)項(xiàng)目(ZK11145)
周新淳(1983—),男,陜西寶雞人,碩士,講師。研究方向:信號(hào)與信息處理、電路與系統(tǒng)。