前端機由帶RS -422接口的8031單片機系統(tǒng)組成,分別放在控制現(xiàn)場附近。通信控制器是插在IBM - PC/XT擴展槽上的帶8031單片機的接口板,為主機和前端機間的通信提供一個智能化通道。用戶只須通過主機向控制器發(fā)一條簡單的命令而無須知道通信的細節(jié),就可以使前端機執(zhí)行相應(yīng)的動作??刂破髅看伟l(fā)送或接收的數(shù)據(jù)是可變的,但不超過255字節(jié)。每次通信都要進行差錯檢測和差錯處理,以保證數(shù)據(jù)傳輸?shù)臏蚀_性。主機IBM - PC/XT是命令的發(fā)起者和系統(tǒng)運行的控制者。
1.前端機
圖1- 27是前端機的結(jié)構(gòu)框圖。它是一個帶RS - 422串行接口的51系列單片機系統(tǒng)。其輸入/輸出和A/D轉(zhuǎn)換的通道數(shù)是根據(jù)實際應(yīng)用控制系統(tǒng)(如汽車自動檢測線)的需要而配置的,與通信無關(guān)。圖1- 28給出了串行接口原理圖。每個前端機和通信控制器的接口均用MC3486和MC3487作差分驅(qū)動和接收。串行總線由一對雙絞線DATA+和DATA-組成。雙絞線的末端有提升電阻,使線路在空閑時處于邏輯1狀態(tài)。當發(fā)送邏輯o(TxD=O)時,線路處于0狀態(tài)。這種差分驅(qū)動和接收總線在電氣特性上符合RS - 422標準,比起RS - 232,這樣的單端驅(qū)動總線具有抗干擾能力強,數(shù)據(jù)傳輸率高,距離遠等優(yōu)點。
2.通信控制器
控制器的結(jié)構(gòu)框圖如圖1- 29所示,8031通過串行接口和并行接口分別和各前端機以及主機交換數(shù)據(jù)。并行接口的原理圖見圖1- 30,控制器和IBM - PC/XT間的數(shù)據(jù)交換是以查詢的方式實現(xiàn)的。8255A工作于A口方式2(雙向總線I/O),控制器向IBM - PC/XT輸出數(shù)據(jù)時,首先WR信號有效將數(shù)據(jù)寫到A口,這使得PC7( OBFA)一O(初始狀態(tài)OBFA =1);IBM - PC/XT通過讀8212Ⅲ的狀態(tài)得知OBFA=O后,再讀8212 I即可將A口數(shù)據(jù)讀入;與此同時,8212 I的INT信號使OBFA恢復(fù)到初始狀態(tài)。IBM - PC/XT向控制器送數(shù)據(jù)時,用輸出命令將數(shù)據(jù)寫入8212Ⅱ;同時8212Ⅱ的INT信號有效,使PC4( STBA)產(chǎn)生一個選通信號;該信號將PC5(IBFA)置為有效(即IBFA =1,初始狀態(tài)IBFA=0),8031讀8255A的C口狀態(tài)得知IBFA =1.再讀A口即可將數(shù)據(jù)讀入控制器。并行口地址采用部分譯碼,8212 I和8212Ⅱ的地址是02EOH;8212Ⅲ的地址是02EIH。
1.幀格式
幀是一次發(fā)送或接收的數(shù)據(jù)。本系統(tǒng)有從控制器發(fā)送到前端機的命令幀和前端機發(fā)送到控制器的命令響應(yīng)幀。它們的格式如下:
命令幀:前端機地址,前端機地址,數(shù)據(jù)長度,數(shù)據(jù)長度,命令字段,數(shù)據(jù),……,數(shù)據(jù),校驗字1,校驗字2。
響應(yīng)幀:狀態(tài)字段,數(shù)據(jù),……,數(shù)據(jù),校驗字1,校驗字2。
其中前端機地址(或稱站地址)是前端機的唯一標識符;命令字段是要求前端機執(zhí)行的操作;狀態(tài)字段指示命令的執(zhí)行情況;數(shù)據(jù)長度用一字節(jié)(B)表示,因此幀的長度不能大于255 B。
2.差錯檢測
對命令幀,前端機地址和數(shù)據(jù)長度各自重復(fù)發(fā)送兩字節(jié)。前端機根據(jù)兩字節(jié)是否一致,判斷地址和數(shù)據(jù)長度字節(jié)在傳輸過程中是否出錯。命令字和所有數(shù)據(jù)字節(jié)用CRC - 16多項式檢錯法檢錯。前端機通過計算得出兩字節(jié)的校驗字,并與命令幀最后兩字節(jié)校驗字相比較,判斷數(shù)據(jù)傳輸是否有錯。命令響應(yīng)幀也采用同樣的CRC - 16多項式檢驗法檢錯。實踐證明,這種檢錯法既可以有效地檢查出傳輸差錯,又可以保證較低的數(shù)據(jù)冗余度。由于單片機缺少CRC檢錯的硬件,所以采用軟件算法,所得的兩字節(jié)校驗字作為幀的最后兩字節(jié)發(fā)送。
3.差錯處理
可能有兩種差錯:幀受到損傷;或者完全丟失。系統(tǒng)規(guī)定,控制器每發(fā)送一幀,前端機僅當數(shù)據(jù)被正確接收時,才會發(fā)送一個響應(yīng)幀。如果一個受損幀到達前端機,就會被丟棄,過一段時間后.控制器會因為超時而把原幀重發(fā)一次,直到該幀最終完好無損地到達為止。幀在從控制器到前端機的過程中丟失,也會因為收不到響應(yīng)幀而超時,使原幀重發(fā)。
一種特殊情況是:
①控制器發(fā)一幀報文到前端機,該報文被前端機正確地接收并回送一響應(yīng)幀。
?、谠擁憫?yīng)幀在從前端機到控制器的過程中完全丟失或受損。
?、劭刂破髯罱K超時,由于沒有收到正確的響應(yīng)幀,它就會不正確地假定:發(fā)出的報文已經(jīng)丟失或受損,并把該幀重發(fā)一次。
④該重復(fù)幀也完好無損地到達前端機,于是前端機收到重復(fù)的兩幀。如果該幀要求前端機產(chǎn)生一個動作,則它會動作兩次,這顯然是不允許的。
為了避免這種情況的發(fā)生,命令字段的最高位設(shè)成序列編號。控制器每發(fā)一幀都加一個序列編號。新幀的序列編號總和前一幀的序列編號不同,重復(fù)幀的序列編號和前一幀的序列編號相同。前端機利用該編號判斷是新幀,還是要丟棄的重復(fù)幀。當一個重復(fù)幀到達時,前端機拒絕接受,但重發(fā)上一次的響應(yīng)幀。
本系統(tǒng)超時時間的長短是動態(tài)的。它與幀長度成正比,和傳輸速度成反比。這種方法比超時時間固定的方法具有更高的通信效率。
4.遠程存取控制
遠程存取控制( RAC)是一組高層命令,IBM - PC/XT可以根據(jù)這組高層命令的格式,在內(nèi)存中組織一段報文送到控制器??刂破鞲鶕?jù)報文向前端機發(fā)送一個命令幀,然后根據(jù)響應(yīng)幀將命令的執(zhí)行情況報告IBM - PC/XT。
軟件設(shè)計
1.通信控制器程序
通信控制器的程序流程圖如圖1- 31所示。其中初始化包括:①設(shè)定不高于100 kb的波特率;②設(shè)定超時計算用的To中斷為最高級中斷;③設(shè)定SP堆棧寄存器的值為30H;④初始化8255A使A口工作于方式2。從IBM接收一幀報文,將前端機不能通信的信息報告IBM.將前端機序列編號出錯信息報告IBM及向IBM發(fā)響應(yīng)報文,均是以查詢方式與IBM - PC/XT交換數(shù)據(jù)的程序模塊;發(fā)送子程序和接收響應(yīng)幀子程序為滿足通信協(xié)議的通信程序模塊。限于篇幅,不再詳述。程序的長度約2.4 KB。
2.前端機通信子程序
該程序是長為1.1 KB的串行口中斷子程序,包括接收命令、執(zhí)行命令、發(fā)響應(yīng)幀三個滿足通信協(xié)議的程序模塊。限于篇幅,其詳細的程序流程圖在此從略。命令送到前端機后何時開始執(zhí)行命令,取決于主程序?qū)Υ锌谥袛嗉墑e的設(shè)定和主程序當時正在執(zhí)行什么操作。若把串行口中斷設(shè)為高級中斷而其他中斷設(shè)為低級中斷,則收到命令后立即執(zhí)行命令。通信子程序占用的資源包括串行中斷口、2 KB RAM中開始的300個存儲單元、128個內(nèi)存字節(jié)中地址從30H~3FH的存儲單元和定時器Tl。
3.IBM - PC/XT遠程存取控制命令的組織和調(diào)用
IBM - PC/XT要前端機執(zhí)行一條如表1- 14所列的命令只須向控制器發(fā)一段報文。報文的格式是:命令長度,前端機地址,命令值(見表1-14),數(shù)據(jù),……,數(shù)據(jù)。例如復(fù)位1號前端機的報文是02H,OIH,OOH;讀2號前端機外存8000H單元值的報文是04H,02H,18H,80H,OOH。
發(fā)送完報文后,根據(jù)IBM - PC/XT接收控制器發(fā)來的響應(yīng)報文(包括狀態(tài)字段、命令執(zhí)行結(jié)果),即可得知命令的執(zhí)行情況。
本系統(tǒng)已應(yīng)用于汽車性能自動檢測等集散式控制系統(tǒng)中。理論和實踐都證明,在1 km范圍內(nèi)數(shù)據(jù)傳輸率可達100 kb/s,而且可靠性很好。應(yīng)用于一般工業(yè)控制系統(tǒng),其性能價格比是較高的;但由于缺乏總線裁決和碰撞檢測等軟件與硬件,前端機不能主動向主機或其他前端機發(fā)起通信。增加這些軟硬件,便可構(gòu)成實時性更強的分布式控制系統(tǒng)。
上一篇:單片機與IBM-PC機的串行通信分析
下一篇:單片機串行接口和調(diào)制解調(diào)器如何實現(xiàn)遠程通信
推薦閱讀
史海拾趣
Austria Micro Systems AG(AMS)是一家總部位于奧地利的半導(dǎo)體制造商,專注于模擬IC、傳感器和感應(yīng)器解決方案。以下是 AMS 公司發(fā)展的五個相關(guān)故事:
創(chuàng)立與初期發(fā)展:AMS 公司成立于1981年,最初是一家小型的半導(dǎo)體公司,成立之初主要從事晶圓制造和生產(chǎn)模擬集成電路(IC)。在公司創(chuàng)始人的領(lǐng)導(dǎo)下,AMS 迅速崛起,憑借著其創(chuàng)新能力和對技術(shù)的獨特洞察力,迅速在半導(dǎo)體市場上占據(jù)了一席之地。
技術(shù)創(chuàng)新與產(chǎn)品擴展:隨著時間的推移,AMS 公司不斷進行技術(shù)創(chuàng)新,并不斷擴展其產(chǎn)品線。公司致力于開發(fā)高性能、低功耗的模擬IC和傳感器解決方案,以滿足汽車、工業(yè)、醫(yī)療等各個領(lǐng)域的客戶需求。AMS 的產(chǎn)品涵蓋了光學傳感器、環(huán)境傳感器、聲學傳感器等多個領(lǐng)域。
全球化發(fā)展與市場拓展:AMS 公司通過不斷拓展全球市場,加強與客戶和合作伙伴的合作關(guān)系,實現(xiàn)了快速的業(yè)務(wù)增長。公司在歐洲、亞洲和美洲設(shè)立了多個銷售辦事處和生產(chǎn)基地,建立了完善的全球供應(yīng)鏈和銷售網(wǎng)絡(luò)。公司的產(chǎn)品銷售網(wǎng)絡(luò)覆蓋了全球范圍,得到了國內(nèi)外客戶的廣泛認可。
收購與合并:為了進一步壯大自身實力和拓展市場份額,AMS 公司通過收購和合并等方式不斷強化自身。公司先后收購了一些技術(shù)領(lǐng)先的公司,擴大了產(chǎn)品線和市場份額。此舉進一步提升了公司在模擬IC和傳感器領(lǐng)域的競爭優(yōu)勢,加速了公司的業(yè)務(wù)增長。
持續(xù)創(chuàng)新與未來展望:AMS 公司將繼續(xù)致力于技術(shù)創(chuàng)新和產(chǎn)品研發(fā),不斷提升產(chǎn)品性能和品質(zhì)水平。公司將關(guān)注新興技術(shù)和市場趨勢,積極布局未來的發(fā)展方向,包括人工智能、物聯(lián)網(wǎng)、汽車電子等領(lǐng)域。同時,公司還將加強與客戶和合作伙伴的合作,共同推動行業(yè)的發(fā)展和進步。
隨著市場競爭的加劇,Datatronic公司意識到單純依靠技術(shù)創(chuàng)新已不足以保持競爭優(yōu)勢。于是,公司開始調(diào)整市場策略,注重與客戶的溝通和合作。通過深入了解客戶需求,公司能夠提供更符合市場需求的定制化產(chǎn)品和服務(wù)。同時,公司還加強了與上下游企業(yè)的合作,形成了穩(wěn)定的供應(yīng)鏈體系。
某新興顯示技術(shù)公司,將量子點技術(shù)應(yīng)用于顯示屏中,成功提升了顯示效果和色彩表現(xiàn)。量子點技術(shù)通過精確控制發(fā)光材料的尺寸和組成,實現(xiàn)了更廣的色域覆蓋和更高的色彩準確性。這一技術(shù)的應(yīng)用,使得顯示屏在色彩還原、對比度等方面有了顯著提升,為用戶帶來了更加真實、生動的視覺享受。
European Crystal Org(ECO)公司誕生于歐洲一個小城市的一個舊倉庫里。創(chuàng)始人約翰·史密斯是一位對晶體技術(shù)充滿熱情的電子工程師。他意識到晶體在電子領(lǐng)域的重要性,并決定專注于研發(fā)和生產(chǎn)高質(zhì)量的晶體振蕩器。初創(chuàng)時期,ECO面臨著資金短缺、技術(shù)挑戰(zhàn)和市場認可度低的困境。然而,約翰憑借對技術(shù)的執(zhí)著和對市場的敏銳洞察,成功研發(fā)出了一款性能卓越的晶體振蕩器,贏得了幾家小型電子制造商的青睞。這些早期客戶的信任為ECO奠定了堅實的市場基礎(chǔ)。
1961年,E-T-A公司推出了其第一款電子式保險絲,這一創(chuàng)新引領(lǐng)了電氣保護設(shè)備的新時代。這款電子式保險絲采用了可編程技術(shù),可以根據(jù)電路需求進行精確的保護和控制。它的出現(xiàn)大大提高了電氣系統(tǒng)的安全性和可靠性,并為E-T-A公司在電路保護領(lǐng)域奠定了堅實的基礎(chǔ)。
海曼電子深知人才是企業(yè)發(fā)展的根本動力。因此,公司一直將人才培養(yǎng)和團隊建設(shè)放在重要位置。公司建立了完善的人才培養(yǎng)體系,通過內(nèi)部培訓(xùn)、外部交流等方式,不斷提升員工的專業(yè)技能和綜合素質(zhì)。同時,公司還注重營造積極向上的企業(yè)文化氛圍,鼓勵員工創(chuàng)新思維和團隊合作。這些舉措不僅吸引了大量優(yōu)秀人才加入海曼電子的大家庭,還為公司的持續(xù)發(fā)展提供了強有力的保障。
VC++編寫簡單串口上位機程序 2010年4月13日10:23:40 串口通信,MCU跟PC通信經(jīng)常用到的一種通信方式,做界面、寫上位機程序的編程語言、編譯環(huán)境等不少,VB、C#、LABVIEW等等,我會的語言很少,C語言用得比較多,但是還沒有找到如何用C語言來 ...… 查看全部問答∨ |
|
我想用通訊模塊,傳輸數(shù)據(jù)到email。我不知道該選哪種好, 是不是帶STMP,POP3之類的協(xié)議好一點? 不知道該選GPRS類型的還是CDMA類型的?… 查看全部問答∨ |
A進程要關(guān)閉B進程,而且B進程不一定在運行,如果B運行了我就關(guān)閉,如果沒運行則忽略,目前只知道B的進程名字為B.exe 那么兩個問題 1.A怎樣知道B是否在運行,是不是用OpenProcess()?但是我不知道B的ID啊。 2.在A中用Terminateprocess()怎樣獲得B ...… 查看全部問答∨ |
自己編譯的一個內(nèi)核,版本為2.6.24.4,文件系統(tǒng)用的是1.9.2,交叉編譯工具用的是3.4.1, 內(nèi)核已經(jīng)下到板子上了,現(xiàn)用nfs文件系統(tǒng)測試,啟動已經(jīng)成功。然后將一個nfs服務(wù)器共享的文件 掛到板子上,也已經(jīng)成功。問題來了: 有一個簡單的驅(qū)動程序sbc2 ...… 查看全部問答∨ |
|
這個是RT-Thread11月份的開發(fā)者聚會。 歡迎所有對RT-Thread感興趣的工程師參加,歡迎所有在RT-Thread平臺上開發(fā)應(yīng)用程序的工程師參加,在會上你將能夠與RT- Thread的開發(fā)者們面對面交流:-) 也能夠向RT-Thread的開發(fā)人員提出自己的疑問,看法。歡迎 ...… 查看全部問答∨ |
|
判斷HOST發(fā)送數(shù)據(jù)包是否完成,以接收到一個長度小于最大包長或者0長度的數(shù)據(jù)包作為依據(jù)可不可行?0長度ACK包會和普通 ...… 查看全部問答∨ |
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 面壁智能端側(cè)大模型首日上線,英特爾工程師聯(lián)合優(yōu)化實現(xiàn)2.2倍推理效率躍升
- 瞄準車規(guī)級碳化硅,理想發(fā)表重要成果
- 車規(guī)級MCU國內(nèi)替代提速
- 博世新獲國內(nèi)頭部車企座艙域控項目定點
- 首款測量電動汽車電機溫度的傳感器問世,提升對磁鐵的保護以減少稀土的使用
- Arm開發(fā)出計算子系統(tǒng) 以加速汽車設(shè)計的下一代AI芯片的開發(fā)
- 福特汽車申請新專利 或?qū)崿F(xiàn)車庫定向音樂播放
- 泊車場景一定需要超聲波嗎?
- 同星新一代TC1055 Pro開啟車載網(wǎng)絡(luò)測試新時代
- 福特汽車申請新專利 或?qū)⑴鋫浒踩ㄗ粉櫹到y(tǒng)
- 免費體驗業(yè)界最快編譯速度&最好性能 Quartus II v15.0網(wǎng)頁版下載有禮!
- 看視頻贏京東卡 | PI無刷直流電機學習中心正式上線
- 免費申請 | SFH 4713B紅外LED樣片,體驗革新性IR:6技術(shù)
- 希望一月 愛上EEWORLD——論壇推廣月
- ADI 新一期《模擬對話》上線,免費下載ing!
- 有獎直播|TI Matter 解決方案助力智能家居創(chuàng)新
- 沁恒CH579M-R1開發(fā)板免費測評,豐富外設(shè)等你體驗
- 【EEWORLD第三十六屆】2012年03月社區(qū)明星人物揭曉!
- 閱讀TI工業(yè)應(yīng)用方案精彩專題,開啟任意寶箱,挑戰(zhàn)答題抽好禮!