專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!
提供新的芯片及解決方案,提升客戶產(chǎn)品競爭力
提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)
單片機(jī)應(yīng)用簡單靈活,使用非常廣泛,但存在無法實(shí)時(shí)保存大量的數(shù)據(jù)、實(shí)時(shí)更新數(shù)據(jù)等缺點(diǎn),因此經(jīng)常需要把單片機(jī)和PC機(jī)的優(yōu)勢相結(jié)合組成系統(tǒng)。本文以卡式電話管理系統(tǒng)(非通用型電話系統(tǒng))為例,從硬件和軟件兩方面分析PC和單片機(jī)之間的通信方法和注意事項(xiàng),并給出相關(guān)系統(tǒng)的結(jié)構(gòu)框圖。
現(xiàn)在的卡式電話系統(tǒng)一般都采用單片機(jī)實(shí)現(xiàn)讀卡、計(jì)費(fèi)等功能,但單片機(jī)操作相對固定,無法根據(jù)外界條件變化作出相應(yīng)改變。比如當(dāng)計(jì)費(fèi)的單價(jià)發(fā)生變化時(shí),必須重新更新整個(gè)計(jì)費(fèi)程序,再燒錄到每個(gè)單片機(jī)中,這就使得維護(hù)非常復(fù)雜。如果把這些經(jīng)常改變的量寫入到一個(gè)類似服務(wù)器的PC機(jī)中,單片機(jī)只要到PC中讀取相應(yīng)的數(shù)據(jù),就可以實(shí)現(xiàn)數(shù)據(jù)更新了。實(shí)現(xiàn)此功能,要解決PC和多個(gè)單片機(jī)之間的連接,以及協(xié)調(diào)PC和多個(gè)單片機(jī)之間的通信,使之不出現(xiàn)沖突。
PC和單片機(jī)之間的連接方式有多種,如利用微機(jī)的串口、并口或通過專門的I/O板進(jìn)行數(shù)據(jù)傳送,單片機(jī)通過共享通道的方法掛在上述總線上。附表列出以上三種連接方式的特點(diǎn)。
應(yīng)用時(shí)應(yīng)根據(jù)實(shí)際需要進(jìn)行選擇。在我們的卡式電話系統(tǒng)中,通信數(shù)據(jù)量很小、傳輸距離很近,因此選擇了串口通信方式。
由于每個(gè)單片機(jī)都是通過串口線和PC連接的,也就是說其總線是共享的,必須避免沖突。其方法有:各單片機(jī)通過中斷向PC申請數(shù)據(jù)總線、PC輪詢各單片機(jī)、單片機(jī)進(jìn)行數(shù)據(jù)總線檢測等。單片機(jī)通過中斷向PC申請數(shù)據(jù)總線的方式可以實(shí)現(xiàn)實(shí)時(shí)的通信,但控制比較復(fù)雜,同時(shí)需要PC具有中斷排隊(duì)的能力,并且要求很多的中斷線,因此只適合一臺(tái)PC帶少量的單片機(jī)的情況。PC輪詢單片機(jī)則相對簡單,成本也很低,不過實(shí)時(shí)性較差,握手時(shí)延很長。第三種方法若要完全避免沖突則非常復(fù)雜。
在卡式電話系統(tǒng)中,我們采用了由PC機(jī)輪詢方式,在輪詢時(shí)采用PC中斷單片機(jī)的方法。這是第一、二種方法的折衷。由于中斷線是共享的,還為每個(gè)單片機(jī)設(shè)定了地址碼。
卡式電話系統(tǒng)的硬件系統(tǒng)框圖如圖1所示。此系統(tǒng)共需要4根信號(hào)線,即收、發(fā)、地和中斷線,收、發(fā)和地可以從串口中找到相應(yīng)的線,而中斷線采用串口中的RTS信號(hào),可以直接編程。
軟件工作流程是:PC先發(fā)送一個(gè)中斷信號(hào),使所有的單片機(jī)轉(zhuǎn)入中斷程序,然后發(fā)送一個(gè)地址碼,各單片機(jī)讀此地址碼以后和自己的實(shí)際地址相比較,若相同,則轉(zhuǎn)入相應(yīng)的動(dòng)作,比如讀取單價(jià)或上報(bào)本機(jī)信息等,否則從中斷程序中跳出。軟件需要解決的是設(shè)定PC串口的工作方式,包括串口的通訊速率、奇偶校驗(yàn)位、停止位等。經(jīng)測試,此系統(tǒng)可以在288kbit/s速率下穩(wěn)定工作,比較理想。在此工作速率下,一臺(tái)PC可以帶64臺(tái)單片機(jī)。圖2為通信程序流程圖。