【基礎篇】做了這么久,才知道什么是上位機
一、定義
上位機:
上位機指可以直接發(fā)送操作指令的計算機或單片機,一般提供用戶操作交互界面并向用戶展示反饋數據。
典型設備類型:電腦,手機,平板,面板,觸摸屏
下位機:
下位機指直接與機器相連接的計算機或單片機,一般用于接收和反饋上位機的指令,并且根據指令控制機器執(zhí)行動作以及從機器傳感器讀取數據。
典型設備類型:PLC,STM32,51,FPGA,ARM等各類可編程芯片
上位機軟件:
用于完成上位機操作交互的軟件被定義為“上位機軟件”;
二、上位機與下位機之間的關系
上位機給下位機發(fā)送控制命令,下位機收到此命令并執(zhí)行相應的動作。
上位機給下位機發(fā)送狀態(tài)獲取命令,下位機收到此命令后調用傳感器測量,然后轉化為數字信息反饋給上位機。
下位機主動發(fā)送狀態(tài)信息或報警信息給上位機。
為了實現以上過程,上位機和下位機都需要單獨編程,都需要專門的開發(fā)人員在各自兩個平臺編寫代碼。
上位機與下位機關系示意圖:

三、通信協(xié)議與通信API
實現上下位機之間的通信需要了解以下2個概念:
通信協(xié)議
上位機和下位機之間的通信協(xié)議有很多,只要能完成通信的協(xié)議都可以用在上位機與下位機之間。比如:
通信協(xié)議(通信方式):RS232/RS485串行通信、USB、藍牙、網絡UDP/TCP
這個通信協(xié)議(通信方式)是實現上位機與下位機之間數據交換的基本通道。
通信API
在通信協(xié)議的基礎上,具體發(fā)送什么數據即發(fā)送什么指令,還需要規(guī)定各個功能所對應的指令(上位機發(fā)給下位機的指令)。
每個功能所對應的指令叫做API(Application Programming Interface), 在實際工作中常稱這個api為“私有通信協(xié)議”。
舉例一條獲取溫度的api:
[包頭 + 獲取溫度對應的命令編碼(編號)+ 校驗位 + 包尾]
api的命令格式,是自定義的一種固定的數據組合格式。不受任何通信方式和通信平臺的限制。
這就意味著,只要通信協(xié)議(通信方式)可以建立,上位機軟件可以是任意開發(fā)語言和任意開發(fā)平臺,下位機也可以使用任意類型的單片機
四、上位機軟件開發(fā)的特點
開發(fā)上位機軟件與其他軟件最大的區(qū)別就是“上位軟件要連接設備并與之通信”。因此引發(fā)了上位機軟件開發(fā)的各項技術:通信方式多樣性、私有協(xié)議定制、通信框架的產生。
1、應用的場合有:
手機連接智能設備
電腦軟件連接工業(yè)設備
電腦軟件連接醫(yī)療儀器
電腦軟件連接打印機
其他需要電腦軟件控制設備的場合
2、PC軟件的沒落與前景
隨著智能手機和平板電腦的普及,現在大家都很少用電腦了,因為手機給用戶提供了很大的使用自由,隨時隨地使用種類繁多的app。不僅方便高效還非常美觀。現在能用手機app代替的軟件,都沒有人用相應電腦軟件了。因此整體上PC軟件在持續(xù)走衰,買臺式機電腦的人也因此大量流失了。
那么PC和PC軟件就會沒落甚至消失嗎?就現在來看是不會(現在2020年)不僅不會還會持續(xù)好一段時間。為什么說暫時不會消失呢?是因為還有好些軟件手機app和平板電腦無法替代。
app無法代替PC軟件的一些原因:
操作:
PC比手機多了鍵盤和鼠標,因此操作便捷性吊打手機。性能
從配置名字上看,現在手機的cpu和內存都要超過普通電腦配置了,但是其實際性能還和臺式機差好遠。運行密集計算的繪圖和視頻相關的軟件還是得用PC來完成。資源
電腦可以接插大量的外設。比如幾十T的硬盤、打印機、投影儀、攝像頭等一系列外部資源??梢哉f吊打手機了。屏幕尺寸
電腦都擁有一個大屏幕,操作起來效率非常高,比如excel在大屏幕上編輯起來非常高效。可以開多個軟件窗口,隨時切換操作。平板電腦的存在和普及就是因為大屏幕。(手機端現在有excel,但是人們還是用PC軟件Excel的原因)電源
PC一般都接著交流電,雖然不能像手機一樣便攜,但是擁有了持久穩(wěn)定的電源。對于一些應用場合還是得使用交流電的方便。使用交流電使得電源功率大也是PC性能高的一個原因。專用外設
有些外設必須要用PC電腦操作,比如:網銀盾、加密狗、hifi聲卡、行業(yè)專用采集卡等。其它
另一個很奇葩但是有現實存在的原因是,手機相對于PC臺式機更容易丟失(這里是指把手機作為專用設備的上位機設備來使用的情況)。
這里列舉一些app無法替代電腦軟件的例子:
視頻剪輯軟件、photoshop、CAD、繪制電路板軟件、繪制機械三維圖軟件,彩超等醫(yī)療器械對應的上位機軟件
行業(yè)專用設備配的上位機軟件、軍工設備配備的上位機軟件、程序猿編程軟件
除去如上所列的這些特殊軟件需要使用PC的優(yōu)勢,剩余的軟件均被手機軟件所占領。手機軟最大勝利就是他的便攜性。
當然這也合情合理,出現了新的設備平臺瓜分了PC軟件的天下。技術總是要前進嘛。未來發(fā)展手機也可能會被拋棄。
因此呢,根據現在的情況來看pc軟件還有好長一段時間會持續(xù)存在。
現在遍地是手機app程序猿,對于pc軟件開發(fā)者建議是,要么轉行要么在特定行業(yè)中開發(fā)PC軟件,這樣技術積累才能持久,也能持久發(fā)展。
使用PC軟件的行業(yè)主要有:醫(yī)療器械、實驗室器械、軍工、電力行業(yè)。
五、對手機app上位機的一些說明
為了追求便攜性方便用戶使用,其實很多設備專用軟件也嘗試開發(fā)了app端上位機軟件。
但是經實際檢驗遇到如下方面的問題:
1、操作不方便,對于操作復雜的設備來說,使用app上位機軟件時,還要騰出一只手或兩只手來操作反而不方便了
2、接外設不方便,遇到最多的是接打印機不方便(雖然能接網絡打印機,但實際體驗差)
3、通信不方便,雖然可以使用藍牙或無線網絡來控制下位機設備,但是不夠穩(wěn)定,尤其特定行業(yè)還使用不了任何無線連接
4、一般工業(yè)設備的上位機軟件會有多人交替操作,由于手機太便攜,因此也同意丟失或被盜。
因此對于特殊行業(yè)又想用移動設備的便攜性又想獲得相對好的操作體驗,可以使用運行Android系統(tǒng)的平板。
六、特殊行業(yè)的上位設備
肯德基店的點餐大屏幕(Android)、公交車上的廣告屏幕(Android)、車站的導航屏幕(PC+win7)、移動手機充電站、自助販賣機。