時間:2023-01-18 05:11:49
開篇:寫作不僅是一種記錄,更是一種創造,它讓我們能夠捕捉那些稍縱即逝的靈感,將它們永久地定格在紙上。下面是小編精心整理的12篇計算機硬件知識大全,希望這些內容能成為您創作過程中的良師益友,陪伴您不斷探索和進步。
【關鍵詞】 linux;VirtualBox;CentOS;Apache;Virtualhost
Linux作為開源的操作系統從一誕生起便吸引著全球數以萬計愛好者的目光,其開放、安全、穩定的特性得到越來越多用戶的認可,應用也日益廣泛。越來越多的公司和企業都把linux作為服務器來使用。為了滿足社會對linux網絡操作系統的需求,各大高校在計算機相關專業開設《linux網絡操作系統》課程。而linux 中apache服務器的搭建需要一定數量的計算機和相關的硬件設備,才能順利開展實驗。但是限于資金、場地和設備等原因,專用網絡實驗室往往無法建立。Oracle VM VirtualBox虛擬機軟件的出現,使得利用現有的有限設備,可以使復雜的網絡教學實驗的順利完成成為可能。本文利用VirtualBox虛擬機軟件,在一臺計算機上安裝CentOS 5這個linux版本,并在此基礎上搭建了apache服務器仿真實驗平臺,并進行了測試。
一、VirtualBox虛擬機介紹
VirtualBox是一款開源虛擬機軟件。Vir-tualBox是由德國Innotek公司開發,由Sun Microsystems公司出品的軟件,在Sun被Oracle 收購后正式更名成 Oracle VM VirtualBox。[1] VirtualBox是一款功能強大的虛擬機軟件,它是通過軟件模擬而獲得具有完整硬件系統功能的、能運行在一個完全隔離環境中的完整計算機系統,這種在物理計算機上模擬出邏輯計算機的方法使得單一的計算機能同時運行多個操作系統,它能提高計算機硬件的利用率,在教育培訓、軟件開發測試及技術支持等領域都有廣泛的應用。[2]
隨著計算機技術的迅猛發展,計算機的性能越來越強大,為虛擬機的運行環境奠定了良好的基礎,同時虛擬機技術越來越成熟,性能越來越優越,系統越來越穩定。基于Windows平臺的虛擬機目前應用較多的是Vmware、Virtaul PC和VirtualBox,基中VirtualBox是一個開源的、跨平臺的、免費的虛擬機軟件,與Vmware、Virtual PC這些虛擬機軟件相比,它的性能更為優異,受到越來越多用戶的推崇。
二、在CentOS 5.5上搭建Apache服務器仿真實驗平臺
Linux作為免費、開源的服務器操作系統目前在市面上的發行版很多,Red Hat Enterprise Linux是目前最成功的商業Linux套件發行商。和大多數Linux發行版一樣,紅帽企業版是免費的,但是它的服務和支持是收費的。后來,有對其不滿者,克隆了Red Hat Enterprise Linux,取名為CentOS,其服務和支持都是免費的。目前很多企業和公司都選擇了CentOS作為服務器操作系統。本次仿真實驗選取CentOS 5.5作為實驗平臺。[3]
Web服務現在已經成為Internet上最熱門的服務之一,它能夠實現信息、資料查詢、數據處理等應用,以便于人們快速地完成各種信息交流。架設Web服務是Internet必不可少的一部分,Apache是CentOS操作系統集成的Web服務器,它是目前性能最優秀、最穩定的Web服務器之一。開放源代碼的Apache(阿帕奇)服務器起初是由ILLinois大學Urbana-Champaign的國家高級計算程序中心開發,后來Apache被開放源代碼團體的成員不斷地發展和加強。Apache是世界使用排名第一的Web服務器,它可運行在UNIX、Linux和Windows等多種操作系統平臺之上。[4]Apache借助開放源代碼開發模式的優勢,得到全世界許多程序員的支持,程序員們為Apache編寫了能完成許多有用功能的模塊,借助這些功能模塊,Aapche具有無限擴展功能的優點。Apache的工作性能和穩定性也遠遠領先于其他同類產品,因此Apache服務器成為Internet上最流行的Web服務器。[5]
三、結束語
利用VirtualBox虛擬機搭建仿真實驗平臺,不僅解決了實驗經費緊張和實驗場地不足等問題,更重要的是營造了“自主學習”環境。利用此平臺,學生可以運用所學的知識,進行各種虛擬體驗,而且還可以開展創新性的實驗。通過體驗培養學生的學習興趣,學生的興趣一旦被激發出來,就會自主地學習,從而加速和鞏固學習知識的過程。
參考文獻
[1]仲勁.Linux服務器配置與管理[M].北京:北京理工大學出版社,2011.
[2]姚越.Linux網絡管理與配置[M].北京:機械工業出版社,2012.
[3]楊明華.Linux系統與網絡服務管理技術大全[M].北京:電子工業出版社,2008.
[4]梁如軍,叢日權,周濤.CentOS5系統管理[M].北京:電子工業出版社,2008.
[5]張勤,鮮學豐.linux從初學到精通[M].北京:電子工業出版社,2011.
C/T=1時,選擇計數功能;
C/T=0時,選擇定時功能。
T0、T1 的計數、定時功能是通過TMOD中的位來選擇的。
3、 M1、M0——工作方式選擇位。
由于有M1和M0兩位,可以有四種工作方式,如下表所示。
定時器/計數器的工作方式
M1
M0
工作方式
計數器配置
方式0
13位計數器
1
方式1
16位計數器
1
方式2
自動重載的8位計數器
1
1
方式3
T0分為兩個8位計數器,T1停止計數
3 串行數據通信程序設計
3.1 通信協議
本系統串行通信采用異步通信方式。協議如下:
1.一幀數據由1位起始位、8位數據位、無奇偶校驗位、1位停止位共10位組成。
2.波特率設為9600bps。單片機串行口按方式1工作,波特率由定時器T1控制,PC機串口波特率通過VB通訊控件的Settings屬性設置,為保證數據傳送的準確性,兩者的波特率必須一致。
本次通訊中,我們以一個測控系統的上位機和下位機之間的通信為背景,給出單片機部分和VB 環境下的通信程序實例,系統中單片機負責數據采集、處理和控制,上位機進行現場可視化檢測,通信協議采用異步串行通信方式,通過RS232 的RTS 信號進行收發轉換,傳輸數據采用二進制數據,上位機與下位機之間采用主從式通訊。
3.2 下位機(單片機)串行通信及程序設計
平臺介紹及編程方法
匯編語言
匯編語言是針對一類(甚至幾類)計算機,抽象出來的一種符號語言并把這些符號加以統一規定,使得使用同類計算機的人都了解這些符號的意義,這樣,使得用匯編語言編寫的程序可以在這一類型的任何一臺計算機上使用。這就有了極大的靈活性,當然不同類型的計算機的匯編語言也不同。它們都必須由生產廠家提供的匯編語言來編寫。另外.匯編語言還增加了宏指令的功能。匯編語言是計算機衛程控制中最常用的語言。
匯編語言的主要優點就是可以直接控制計算機硬件,可以編寫在時間和空間兩方面更有效的程序。這些優點使得匯編語言在程序設計中占有重要的地位。是不可取代的。
但匯編語言的缺點也是明顯的,它與處理器密切相關,要求程序員熟悉計算機硬件系統,考慮許多細節問題,所以程序繁瑣,調試、維護、交流和移植困難。因此,有時可以采用高級語言和匯編語言混合編程的方怯,互相取長補短,更好地解決實際間題。
匯編語言生要應用場合有以下幾種:
l)程序要具有較短的運行時問,或者只能占用較小的存儲客量。例如操作系統的核心 程序段,實時控制系統的軟件等。
2)程序與計算機硬件密切相關,程序要直接控制硬件。例如to接口電路的初始化程序段,外部設備的底層驅動程序等。
3)大型軟件需要提高性能、優化處理的部分。例如計算機系統頻繁調用的子程序、動態鏈接庫等。
4)沒有適合的高級語言的時候。例如開發最新的處理器程序時。
偉福軟件介紹:
偉福系列仿真器偉福仿真品種多、功能強,特點如下:
1)主機+POD組合,通過更換POD,可以對各種CPU進行仿真。
2) 雙平臺:DOS版本,WINDOWS版本。其中WINDOWS版本功能強大。
3) 雙工作模式:a.軟件模擬仿真(不要仿真器也能模擬仿真)。 硬件仿真。
4) 雙CPU結構,100% 不占用戶資源。
5) 雙集成環境:編輯、編譯、下載、調試全部集中在一個環境下。多種仿真器,多類CPU仿真全部集成在一個環境下。可仿真51系列,196系列,PIC系列,飛利蒲公司的552、LPC764、DALLAS320,華邦438等51增強型CPU。為了跟上形勢,現在很多工程師需要面對和掌握不同和項目管理器、編輯器、編譯器。偉福 WINDOWS調試軟件為您提供了一個全集成環境,統一的界面,包含一個項目管理器,一個功能強大的編輯器,匯編Make、Build和調試工具并提供一個與第三方編譯器的接口。
6) 強大的邏輯分析儀綜合調試功能:隨著科學技術的發展,單片機通訊方面的運用越來越多。有了邏輯儀,用它可以分別或者同時對發送方、接收方的輸入或者輸出波形進行記錄、存儲、對比、測量等各種直觀的分析,可以將實際輸出通訊報文的波形與源程序相比較,可立即發現問題所在。從而極大地方便了調試。
7) 強大的追蹤器功能:追蹤功能以總線周期為單位,實時記錄仿真過程中CPU發生的總線事件,其觸發條件方式同邏輯分析儀。追蹤窗口在仿真停止時可收集顯示追蹤的CPU指令記憶信息,可以以總線反匯編碼模式、源程序模式對應顯示追蹤結果。屏幕窗口顯示波形圖最多追蹤記憶指令32K并通過仿真器的斷點、單步、全速運行或各種條件組合斷點來完成追蹤功能。總線跟蹤可以跟蹤程序的運行軌跡。可以統計軟件運行時間。
編程方法
本系統中傳輸協議為9600,8,N,1,即波特率為9600b/s,傳送8個數據位。沒有校驗位,一個停止位。在PC機中也設置為相同的協議。1)控制寄存器SCON的設置為:SM0、SM1為0、1,即為串行工作方式1,REN為1,即允許接收。這樣SCON中的值是0X50H,(使用匯編語言是MOV SCON,#50H。)2)TMOD寄存器的設置為:使用定時器1。M0=0,M1=1,工作于方式2,自動重新載入計數值。TMOD=0X20H。(使用匯編語言是MOV TMOD,#20H)3) 波特率的設置:本系統上的工作時鐘為11.0592MHz, 波特率為9600b/s,對TH1的重載入計數器值由下式計算可得:TH1=256-11059200/384*9600=253=FDH TH1=0XFDH(使用匯編語言是MOV TH1,#0FDH)。
流程圖如右:
接收程序:
MAIN: MOV
TMOD,#20H ;
MOV
TH1,#0FDH;
MOV
TL1,#0FDH;
SETB TR1;
MOV
SCON,#50H;
LOOP: JBC
RI,DISP
SJMP
LOOP
DISP: MOV
A,SBUF
MOV
DPTR,#TAB
MOVC A,@A+DPTR
MOV P2,A
SJMP LOOP
TAB: DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
發送程序:
ORG 0000H
START: MOV
TMOD,#20H;
MOV
TL1,#0FDH
MOV
TH1,#0FDH;
SETB
TR1
MOV
SCON,#40H
MOV
R0,#20H
MOV
R7,#32
MOV
A,#40
LOOP1:
MOV
@R0,A
INC
A
INC
R0
DJNZ
R7,LOOP1
MOV
R0,#20H
MOV
R7,#32
LOOP:
MOV
A,@R0
ACALL YANSHI
ACALL SPOUT
INC
R0
DJNZ
R7,LOOP
SJMP
START
SPOUT:
MOV
SBUF,A
JNB
TI,$
CLR
TI
RET
YANSHI: MOV
R6,#250
D1:
MOV
R5,#250
DJNZ
R5,$
DJNZ
R6,D1
RET
END
3.3上位機(PC機)串行通信及程序設計
3.3.1 平臺介紹及編程方法
VB語言簡介
在本系統中PC機采用Visual Basic(簡稱VB)編程。VB已成為WINDOWS系統開發的主要語言,以其高效、簡單易學及功能強大的特點越來越為廣大程序設計人員及用戶所青睞。VB支持面向對象的程序設計,具有結構化的事件驅動編程模式并可以使用無限擴增的控件,而且可以十分簡便地作出良好的人機界面。
用VB6.0開發串行通信程序有兩種法,一種是利用Windows的API函數;另一種是采用VB6.0的通信控件MSComm。利用API函數編寫串行通信程序較為復雜,需要掌握大量的通信知識,其優點是可實現的功能更豐富、應用面更廣泛,適合于編寫較為復雜的低層次通信程序。而VB6.0的MSComm通信控件提供了標準的事件處理函數、事件、方法,并通過控件屬性對串口參數進行設置,比較容易地解決了串口通信問題。該控件可設置串行通信的數據發送和接收,對串口狀態及串口通信的信息格式和協議進行設置。這是一個標準的十位串口通信,包括8位標準數據和數據的起始位和停止位。在發送或接收數據過程中觸發OnComm事件,通過編程訪問 CommEvent屬性了解通信事件的類型,分別進行各自的處理。每個通信控件對應一個串口,可以設計多個通信控件來訪問多個通信口。
轉貼于 PC機程序設計流程圖如下示
3.3.2 VB6.0的通信控件及通信方式
MSComm通訊控件簡介
MSComm是VB6.0提供的ActiveX控件,使用前需將該控件添加到VB工具 欄。MSComm控件串口具有完善的串口數據的發送和接收功能。通過此控件,PC機可以利用串行口與其它設備實現輕松連接,簡單高效地實現設備之間的通訊。此控件的事件響應有兩種處理方式,事件驅動方式:由MSComm控件的OnComm事件捕獲并處理通訊錯誤及事件;查詢方式:通過檢查CommEvent屬性的值來判斷事件和錯誤。
1)MSComm控件的主要屬性和方法
a.
CommPort:設置或返回串行端口號,其取值范圍為1—99,缺省為1
b.
Setting: 設置或返回串行端口的波特率、奇偶校驗位、數據位數、停位。如:MSComm.Setting="9600, n, 8, 1”。
c.
PortOpen:打開或關閉串行端口。
d.
RThreshold:該屬性為一閥值,它確定當接收緩沖區內字節個數達到或超過該值后就產生MSComml--OnComm事件。
e.
Input:從接收緩沖區移走一串字符。
f.
Output:向發送緩沖區傳送一字符串。
2)CommEvent屬性 :
如果在通訊過程中發生錯誤或事件,就會引發OnComm事件并由CommEvent 屬性代碼反映錯誤類型,可根據該屬性值來執行不同的程序操作或數據處理。以下是部分屬性常數值及其含義:
a.
ComEvSend:其值為1,發送緩沖區的內容少于SThreshold指定的值。
b.
ComEvReceive:其值為2,接收緩沖區內字符數達到RThreshold值,該事件在緩沖區中數據被移走前將持續產生。
c.
ComEventRxParity:其值為1009,奇偶校驗。
d.
ComEvEOF:其值為7,接收數據中出現文件結束字符。
本系統采用事件驅動方式進行串口通信設計,下圖2為上位機通信界面,設計了2個命令按扭,分別為發送、清空數據;兩個文本框,Text1用于輸入需從下位機讀取的數,Text2用于顯示下位機發送來的數據;3個Frame控件,一個Label控件,當然還需要一個MSComm控件。
MSComm控件屬性設置如圖1示:
(圖2)
下面是MSComm控件的初始化程序、部分數據發送和接受程序
4調試與結論
該系統目前已調試成功,完成了PC機與51單片機之間的串行通信。并且實現了下列功能:1)在VB界面上發送任一數字在51單片機的數碼管上都能成功的接收 2)同樣通過向51單片機內寫入的程序,在VB界面上可以接收到相對應的內容且運行良好。
調試過程如下:
硬件方面:
該系統的硬件調試主要是排查單片機印刷電路板的問題和連接上的一些問題。在該系統中,首先通過了仔細地推敲系統原理,確認無誤;其次對照設計圖紙查印制電路板,看是否有粘接等工藝現象;最后,檢查外圍連接是否有誤,通過這幾個方面的反復調試,可確保電路板的無誤性。
在本系統的硬件調試過程中,出現了下列兩種情況
1)電壓不穩定而導致程序無法寫入的情況,使電壓穩定的方法是改用新的電池,或者是再次設計電源方案,在這里是用電源接通教學實驗板,然后再把教學實驗板與本系統相
連接,這樣,就可以得到穩定的電壓了。
2)還出現的一個問題是數碼管不顯示,檢查后是焊接上出現了一點的失誤。
軟件方面:
本系統在軟件調試方面也沒有規律可循,調試時更多的是憑經驗。軟件調試的主要任務是排查錯誤。通過在Wave E2000編譯器下調試程序,有兩種錯誤,一種邏輯錯誤,也就是語法錯誤,是很容易被發現的,另一種是功能錯誤,是指在沒有語法錯誤的基礎上,由于設計思想或算法的問題導致不能實現軟件功能的一種錯誤。調試過程中出現的問題主要有以下四個方面:
1)用其它串口調試軟件能夠很好的實現兩者之間的串行通信,成功的接收和發送數據,但使用我們的VB程序卻不能實現,要么只能實現接收功能,要么只能實現發送功能。之后通過對VB程序做多次的改動與測試才達到理想的結果。
2)在VB界面上發送的數據與單片機的數碼管上顯示的數字不相符,這個問題是我們匯編程序的問題,由于匯編語言符號的繁多加上我們的粗心在輸入代碼的過程中難免出現一些看不見的問題,造成調試過程中出現意外。借此我想提醒大家的是搞設計搞研究必須做到細心,要有一顆敬業的心對待我們接受的任務,有耐心面臨出現的困難。
3)由于要實現上下位機的串行通信,所以兩者之間的波特率是否一致也是一個不容忽視的問題,在開始我并沒有太注意這個方面的情況,到各方面的準備工作都做好要進行調試的時候,才發現有個二者波特率設置是否相同將影響到整個通信過程,我趕緊作了修改才免遭一次調試失敗。
4)還有最后一點注意的地方是,利用MSComm控件比較方便地開發串行通信程序,實現串行通訊原理已經得到實驗結果驗證,考慮到將來對系統實時性的要求,采用了MSComm控件的查詢處理機制,避免了中斷處理機制的不穩定和不連續性,而且還可以很方便地控制多個串口,只需插入多個MSComm控件,并為每個MSComm控件編寫OnComm()函數。但是我們也清楚的體會到MSComm控件在VB中的使用較為復雜。這一點是我們以后在運用中需要加強的地方。
伴隨著單片微型機技術的發展,人們已越來越多地采用單片機來對一些工業控制系統中如溫度、流量和壓力等參數進行檢測和控制。希望通過大家的共同努力能在PC機與單片機這方面取得新的成績有突出的表現,能夠很好的將學到知識運用到實際生活中,比如上面提到的利用單片機實現對溫度的實時檢測與控制已經得到廣泛的應用。另外我們還可以在單片機的接口上再加接顯示器,這樣就更能方便的對系統進行操作與控制。
通過這次畢業設計,我深刻體會到專業知識、專業技能分析和解決問題的能力在實際生活中是多么的重要,在完成設計任務的同時我這些方面的能力有了一個全面的提高和鍛煉。具體表現在對單片機與PC機的串行通信的基本原理、單片機應用系統開發過程,以及在常用編程設計思路技巧(匯編語言與VB)的掌握方面都向前邁了一大步,為日后使我能成為合格的應用型人才打下了良好的基礎。
采用本系統實現PC機與單片機串行通信與一般其它系統的比較:一般的PC機與單片機之間的串行通信,需要單片機采集數據,然后用異步串行通訊方式傳給PC機。相對而言通訊速率不是很理想,在一些要求通訊傳輸速率比較快的地方,普通的PC機與單片機之間的串行通信顯然是不能滿足其要求的。利用VB6.0 的事件驅動方式可以很方便地開發數據采集與監控系統,用單臺PC 機可以測量和監控多路控制信號,整控制系統設計方便,對小型測控系統的設計具有很大的實用性。且傳輸數據的速率要比普通的串行通信要快些。
對于目前廣泛應用的Windows環境下實現PC機與單片機之間的通信問題,希望大家能提出寶貴的意見。
參考文獻
[1]蔡美琴等.MCS-51系列單片機系統及其應用(第二版).高等教育出版社,2004.
[2]楊毓,李明.Visual Basic6.0實用開發教程[M].成都:電子科技大學出版社,2001.
[3]劉新民,蔡瓊等.VB6.0程序設計.北京:清華大學大學出版社,2004.
[4]李華.單片機通用接口技術[M].北京:北京航空航天大學出版社,1999
[5]魏慶福,姚亦鳴,等STD總線工業控制機的設計與應用[M].北京:科學出版社,1992
[6]何立民,單片機應用系統設計.北京:航空航天大學出版社,1992
[7]美Jan Axelson 著,串行端口大全,精英科技譯,2001.5四
[8]劉瑞新等. Visual Basic程序設計教程,北京:機械工業出版社, 2002
[9]傅揚烈 單片機原理與應用教程,電子工業出版社, 2002.1