❶ webservice介面是什麼它有什麼作用
webService介面是一種常用的簡訊群發提交介面,使用時可以象調用一般函數一樣調用WebService的方法。
作用是:該介面主要用於客戶自身的軟體、網站或其他產品,需要將簡訊群發功能集成於軟體、網站內作為產品整體功能的一部分,在這種情況下可以使用WebService介面來提交簡訊。實現WebService介面的簡訊群發功能需要有一定的基本編程能力。如VC++、Delphi、ASP等。
(1)web介面子系統擴展閱讀:
WebService介面技術支持
1、XML
可擴展的標記語言(標准通用標記語言下的一個子集)為Web Service平台中表示數據的基本格式。XML是由萬維網協會(W3C)創建,W3C制定的XML SchemaXSD定義了一套標準的數據類型,並給出了一種語言來擴展這套數據類型。
2、SOAP
SOAP用於交換XML(標准通用標記語言下的一個子集)編碼信息的輕量級協議。它有三個主要方面:XML-envelope為描述信息內容和如何處理內容定義了框架,將程序對象編碼成為XML對象的規則,執行遠程過程調用(RPC)的約定。SOAP可以運行在任何其他傳輸協議上。
3、WSDL
Web Service描述語言WSDL,就用機器能閱讀的方式提供的一個正式描述文檔而基於XML(標准通用標記語言下的一個子集)的語言,用於描述Web Service及其函數、參數和返回值。
❷ web客戶端中怎麼調用webservice介面
客戶端調用WebService的方式
通過wsimport生成客戶端代碼
通過客戶端編程的方式調用
通過ajax調用 (js+XML)
通過URLConnection調用
2.2.1 通過wsimport生成客戶端代碼
參見2.1
2.2.2 通過客戶端編程的方式調用
(1),使用javax.xml.ws.Service類用於訪問web服務
(2),關鍵類Service
方法create – 用戶創建Service對像,提供wsdlurl和服務名。
getPort-用於通過指定namespace,portName和介面的范型。
在客戶端需要一個與伺服器介面完全相同的類。(仍然使用工具生成。但只需要一個介面。並需要簡單修改。如果返回的是復雜數據類型如POJO,還需要將POJO一並放到項目中)。
App.class文件:
Service s =
Service.create(new URL(「http://192.168.1.108:5678/hello?wsdl」),
new QName(targetNamespace,serviceName)
);
HelloService hs = s.getPort(portName,serviceEndpointInterface);
(注意:這里portName=new QName(targetNamespace,portName))
String str = hs.sayHello(「Lisi」,10);
System.out.println(str); //列印hello Lisi
說明 :關鍵類QName – 被稱為完全限定名即:Qualified Name的縮寫。
QName 的值包含名稱空間 URI、本地部分和前綴。
客戶端編程的方式不常用。
❸ webservice介面怎麼使用
webservice的調用,常用的大約有3種方式:
1、使用axis調用
2、使用xfire調用
3、使用cxf調用
項目中,採用axis進行調用,記錄如下,備忘:
ps教程:想當年的時候是用的xfire方式調用的,結果沒做記錄,現在已經完全記不得怎麼玩了。所以說要多寫博客啊 t_t
版本說明:
aixs版本:axis-bin-1_4.zip
java環境略
第一步:確保wsdl文件可用,文中為獲取到sendsmsservice.wsdl,當然url的也行。
第二步:執行生成客戶端代碼的腳本。腳本內容為:
set axis_lib=d:axis-1_4lib
set java_cmd=java -djava.ext.dirs=%axis_lib%
set output_path=.
set package=info.jyzh.wap.liaoning.push
%java_cmd% org.apache.axis.wsdl.wsdl2java sendsmsservice.wsdl -o%output_path% -p%package% -t
#查看wsdl2java的使用幫助#%java_cmd% org.apache.axis.wsdl.wsdl2java -help
ok,至此,客戶端代碼就生成出來了。還帶了一個單元測試哦。
實際工作中,碰到以下情況,客戶端不能直接連上webservice伺服器,中間被強大的代理伺服器擋住了。如下圖:
為此,修改生成的代碼,本次是在中作修改,如下:
static {
axisproperties.setproperty("http.proxyhost","88.88.88.88");
axisproperties.setproperty("http.proxyport","8080");
axisproperties.setproperty("http.proxyuser","asp教程yy");
axisproperties.setproperty("http.proxypassword","123456");
_operations = new org.apache.axis.description.operationdesc[1];
_initoperationdesc1();
}直接axis調用遠程的web service我覺得這種方法比較適合那些高手,他們能直接看懂xml格式的wsdl文件,我自己是看不懂的,尤其我不是專門搞這行的,即使一段時間看懂,後來也就忘記了。直接調用模式如下:import java.util.date;import java.text.dateformat;import org.apache.axis.client.call;import org.apache.axis.client.service;import javax.xml.namespace.qname;import java.lang.integer;import javax.xml.rpc.parametermode; public class caclient { public static void main(string[] args) { try { string endpoint = "http://localhost:8080/ca3/services/casynrochnized?wsdl"; //直接引用遠程的wsdl文件 //以下都是套路
service service = new service(); call call = (call) service.createcall(); call.settargetendpointaddress(endpoint); call.setoperationname("adser");//wsdl裡面描述的介面名稱 call.addparameter("username", org.apache.axis.encoding.xmltype.xsd_date, javax.xml.rpc.parametermode.in);//介面的參數 call.setreturntype(org.apache.axis.encoding.xmltype.xsd_string);//設置返回類型
string temp = "測試人員"; string result = (string)call.invoke(new object[]{temp}); //給方法傳遞參數,並且調用方法 system.out.println("result is "+result); } catch (exception e) { system.err.println(e.tostring()); } }}2,直接soap調用遠程的webservice這種模式我從來沒有見過,也沒有試過,但是網路上有人貼出來,我也轉過來import org.apache.soap.util.xml.*;import org.apache.soap.*;import org.apache.soap.rpc.*; import java.io.*;import java.net.*;import java.util.vector; public class caservice{ public static string getservice(string user) { url url = null; try { url=new url("http://192.168.0.100:8080/ca3/services/casynrochnized"); } catch (malformerlexception mue) { return mue.getmessage(); } // this is the main soap object call soapcall = new call(); // use soap encoding soapcall.setencodingstyleuri(constants.ns_uri_soap_enc); // this is the remote object we're asking for the price soapcall.settargetobjecturi("urn:xmethods-casynrochnized"); // this is the name of the method on the above object soapcall.setmethodname("getuser"); // we need to send the isbn number as an input parameter to the method vector soapparams = new vector(); // name, type, value, encoding style parameter isbnparam = new parameter("username", string.class, user, null); soapparams.addelement(isbnparam); soapcall.setparams(soapparams); try { // invoke the remote method on the object response soapresponse = soapcall.invoke(url,""); // check to see if there is an error, return "n/a" if (soapresponse.generatedfault()) { fault fault = soapresponse.getfault(); string f = fault.getfaultstring(); return f; } else { // read result parameter soapresult = soapresponse.getreturnvalue (); // get a string from the result return soapresult.getvalue().tostring(); } } catch (soapexception se) { return se.getmessage(); } }}
3,使用wsdl2java把wsdl文件轉成本地類,然後像本地類一樣使用,即可。
❹ webService介面是什麼
Web是使應用程序可以與平台和編程語言無關的方式進行相互通信的一項技術。Web 服務是一個軟體介面,它描述了一組可以在網路上通過標准化的 XML 消息傳遞訪問的操作。
它使用基於 XML 語言的協議來描述要執行的操作或者要與另一個 Web 服務交換的數據。一組以這種方式交互的 Web 服務在面向服務的體系結構(Service-Oriented Architecture,SOA)中定義了特殊的 Web 服務應用程序。
簡單的說WebService是一個SOA(面向服務的編程)的架構,它是不依賴於語言,不依賴於平台,可以實現不同的語言(通過xml描述)間的相互調用,通過Internet進行基於Http協議的網路應用間的交互。
通過SOAP在Web上提供的軟體服務,使用WSDL文件進行說明,並通過UDDI進行注冊。
(4)web介面子系統擴展閱讀
Web Service技術, 能使得運行在不同機器上的不同應用無須藉助附加的、專門的第三方軟體或硬體, 就可相互交換數據或集成。
依據Web Service規范實施的應用之間, 無論它們所使用的語言、 平台或內部協議是什麼, 都可以相互交換數據。Web Service是自描述、 自包含的可用網路模塊, 可以執行具體的業務功能。
web廣泛用到的技術:
TCP/IP:通用網路協議,被各種設備使用
HTML(標准通用標記語言下的一個應用):通用用戶界面,可以使用HTML標簽顯示數據
NET: 不同應用程序間共享數據與數據交換
Java:寫一次可以在任何系統運行的通用編程語言,因為java具有跨平台特性
XML(標准通用標記語言下的一個子集):通用數據表達語言,在web上傳送結構化數據的容易方法
❺ webservice介面怎麼用
下面我們就拿一個簡單的天氣預報介面。先把天氣預報介面的地址輸入地址欄:會出現一些帶有鏈接的方法名和參數說明之類的。看完之後,然後進鏈接可以看到測試,可以先把我們想測試的參數寫進去,點擊調用,會出現一個xml文件,這些就是得到的結果,依情況而定我們出把結果處理成我們想要的就可以了。
下面說一下怎麼在項目中調用:新建一個web項目,然後點擊添加引用服務如圖,然後點擊確定。
這樣就會發現在webconfig文件裡面多了一下節點,而且項目類中的Service
References文件件多了一個綠色的東西。可以點擊看看他有哪些方法,應該是和我們在瀏覽器輸入鏈接的方法是一致的,剩餘就是怎麼調用了。下面給出具體的代碼:本代碼值在webForm中先添加Lable、TextBox、Button以及Literal各一個。然後點擊按鈕。
protected void Button1_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(this.TextBox1.Text))
{
WeatherService.WeatherWebServiceSoapClient service = new WeatherService.WeatherWebServiceSoapClient();
String[] strWeatherInfo = service.getWeatherbyCityName(this.TextBox1.Text);
StringBuilder str = new StringBuilder("");
str.AppendLine("您查看天氣信息如下:");
foreach (string info in strWeatherInfo)
{
str.AppendLine(info+"<br/>");
}
this.Literal1.Text =str.ToString();
}
}
❻ WebService和Webapi的區別
Web Service特徵
1、它是基於SOAP協議的,數據格式是XML
2、只支持HTTP協議
3、它不是開源的,但可以被任意一個了解XML的人使用
4、它只能部署在IIS上
Web API特徵(紅色標記與WebService區別)
1、這是一個簡單的構建HTTP服務的新框架
2、在.net平台上Web API 是一個開源的、理想的、構建REST-ful 服務的技術
3、不像WCF REST Service.它可以使用HTTP的全部特點(比如URIs、request/response頭,緩存,版本控制,多種內容格式)
4、它也支持MVC的特徵,像路由、控制器、action、filter、模型綁定、控制反轉(IOC)或依賴注入(DI),單元測試。這些可以使程序更簡單、更健壯
5、它可以部署在應用程序和IIS上
6、這是一個輕量級的框架,並且對限制帶寬的設備,比如智能手機等支持的很好
7、Response可以被Web API的MediaTypeFormatter轉換成Json、XML 或者任何你想轉換的格式。
8、Web API非常適合構建移動客戶端服務
以下情況可以考慮用Web API
1、 需要Web Service但是不需要SOAP
2、 需要在已有的WCF服務基礎上建立non-soap-based http服務
3、 只想發布一些簡單的Http服務,不想使用相對復雜的WCF配置
4、 發布的服務可能會被帶寬受限的設備訪問
5、希望使用開源框架,關鍵時候可以自己調試或者自定義一下框架
6、如果服務需要在http協議上,並且希望利用http協議的各種功能
7、如果服務需要被各種客戶端(特別是移動客戶端)調用
小結(僅供參考)
總體來說,兩者都是服務,只是表現形式存在一些差異
webapi多用於基於http請求的服務應用,比如說移動服務端或者需要提供第三方API 服務的場景下
webservice也可以應用於webapi所在的場景,但是如果是我的選擇,我一般是做為內部服務的使用,好比如果一個系統我會用wcf/webservice作為內部子系統間的服務通信,而webapi用於外部服務的請求~
❼ web伺服器的組成
伺服器分塔式、機架式和刀片式這三種結構來劃分伺服器,伺服器的外形為什麼會有這樣的劃分呢?主要原因就是具體的應用環境不同,塔式伺服器長得跟我們平時用的台式機一樣,佔用空間比較大,一般是一些小型企業自己使用自己維護;而機架式伺服器長得就像卧著的台式機,可以一台一台的放到固定機架上,因此而得名,它可以拿去專業的伺服器託管提供商那裡進行託管,這樣每年只需支付一定的託管費,就免去了自己管理伺服器的諸多不便;而刀片伺服器是近幾年才比較流行的一種伺服器架構,它非常薄,可以一片一片的疊放在機櫃上,通過群集技術進行協同運算,能夠處理大量的任務,特別適合分布式服務,如作為WEB伺服器。
看完上面的簡單介紹,相信各位對這3種伺服器已經有個基本的認識了,下面我們就來一一細說,為大家做更詳細的講解:
什麼是塔式伺服器:
塔式伺服器應該是大家見得最多,也最容易理解的一種伺服器結構類型,因為它的外形以及結構都跟我們平時使用的立式PC差不多,當然,由於伺服器的主板擴展性較強、插槽也多出一堆,所以個頭比普通主板大一些,因此塔式伺服器的主機機箱也比標準的ATX機箱要大,一般都會預留足夠的內部空間以便日後進行硬碟和電源的冗餘擴展。
由於塔式伺服器的機箱比較大,伺服器的配置也可以很高,冗餘擴展更可以很齊備,所以它的應用范圍非常廣,應該說目前使用率最高的一種伺服器就是塔式伺服器。我們平時常說的通用伺服器一般都是塔式伺服器,它可以集多種常見的服務應用於一身,不管是速度應用還是存儲應用都可以使用塔式伺服器來解決。
就使用對象或者使用級別來說,目前常見的入門級和工作組級伺服器基本上都採用這一伺服器結構類型,一些部門級應用也會採用,不過由於只有一台主機,即使進行升級擴張也有個限度,所以在一些應用需求較高的企業中,單機伺服器就無法滿足要求了,需要多機協同工作,而塔式伺服器個頭太大,獨立性太強,協同工作在空間佔用和系統管理上都不方便,這也是塔式伺服器的局限性。不過,總的來說,這類伺服器的功能、性能基本上能滿足大部分企業用戶的要求,其成本通常也比較低,因此這類伺服器還是擁有非常廣泛的應用支持。
什麼是機架式伺服器:
作為為互聯網設計的伺服器模式,機架伺服器是一種外觀按照統一標准設計的伺服器,配合機櫃統一使用。可以說機架式是一種優化結構的塔式伺服器,它的設計宗旨主要是為了盡可能減少伺服器空間的佔用,而減少空間的直接好處就是在機房託管的時候價格會便宜很多。
為什麼說機架式伺服器是作為為互聯網設計的伺服器模式?
正如大家所知,很多專業網路設備都是採用機架式的結構(多為扁平式,活像個抽屜),如交換機、路由器、硬體防火牆這些。這些設備之所以有這樣一種結構類型,是因為他們都按國際機櫃標准進行設計,這樣大家的平面尺寸就基本統一,可把一起安裝在一個大型的立式標准機櫃中。這樣做的好處非常明顯:一方面可以使設備佔用最小的空間,另一方面則便於與其它網路設備的連接和管理,同時機房內也會顯得整潔、美觀。
機架伺服器的寬度為19英寸,高度以U為單位(1U=1.75英寸=44.45毫米),通常有1U,2U,3U,4U,5U,7U幾種標準的伺服器。機櫃的尺寸也是採用通用的工業標准,通常從22U到42U不等;機櫃內按U的高度有可拆卸的滑動拖架,用戶可以根據自己伺服器的標高靈活調節高度,以存放伺服器、集線器、磁碟陣列櫃等網路設備。伺服器擺放好後,它的所有I/O線全部從機櫃的後方引出(機架伺服器的所有介面也在後方),統一安置在機櫃的線槽中,一般貼有標號,便於管理。
現在很多互聯網的網站伺服器其實都是由專業機構統一託管的,網站的經營者其實只是維護網站頁面,硬體和網路連接則交給託管機構負責,因此,託管機構會根據受管伺服器的高度來收取費用,1U的伺服器在託管時收取的費用比2U的要便宜很多,這就是為什麼這種結構的伺服器現在會廣泛應用於互聯網事業。
還有一點要說的是機架式伺服器因為空間比塔式伺服器大大縮小,所以這類伺服器在擴展性和散熱問題上受到一定的限制,配件也要經過一定的篩選,一般都無法實現太完整的設備擴張,所以單機性能就比較有限,應用范圍也比較有限,只能專注於某一方面的應用,如遠程存儲和Web服務的提供等,但由於很多配件不能採用塔式伺服器的那種普通型號,而自身又有空間小的優勢,所以機架式伺服器一般會比同等配置的塔式伺服器貴上20-30%。至於空間小而帶來的擴展性問題,也不是完全沒有辦法解決,由於採用機櫃安裝的方式,因此多添加一個主機在機櫃上是件很容易的事,然後再通過伺服器群集技術就可以實現處理能力的增強,如果是採用外接擴展櫃的方式也能實現大規模擴展,不過由於機架式伺服器單機的性能有限,所以擴展之後也是單方面的能力得到增倍,所以這類伺服器只是在某一種應用種比較出色,大家就把它劃為功能伺服器,這種伺服器針對性較強,一般無法移做它用。
什麼是刀片伺服器?
對於企業和網路信息提供商來說,無限增長的數據必須集中存儲和處理,於是未來的網路發展呈現出集中計算的趨勢。集中管理模式與現有的分散管理模式,對伺服器提出了新的要求:節約空間、便於集中管理、易於擴展和提供不間斷的服務,成為對下一代伺服器的新要求。
作為網路重要組成部分的伺服器來說,性能已不僅僅是評價伺服器的唯一指標了,用戶更關心的是符合自己實際需要的產品。目前伺服器集群已經在市場上得以廣泛應用,而新一代機架式伺服器也開始進入市場,為用戶提供了更多的選擇。但是隨著網路向更深層面發展,下一代伺服器將會是BladeServer(刀片伺服器)。
刀片伺服器是一種HAHD(HighAvailabilityHighDensity,高可用高密度)的低成本伺服器平台,是專門為特殊應用行業和高密度計算機環境設計的。其中每一塊"刀片"實際上就是一塊系統主板。它們可以通過本地硬碟啟動自己的操作系統,如WindowsNT/2000、Linux、Solaris等等,類似於一個個獨立的伺服器。在這種模式下,每一個主板運行自己的系統,服務於指定的不同用戶群,相互之間沒有關聯。不過可以用系統軟體將這些主板集合成一個伺服器集群。在集群模式下,所有的主板可以連接起來提供高速的網路環境,可以共享資源,為相同的用戶群服務。在集群中插入新的"刀片",就可以提高整體性能。而由於每塊"刀片"都是熱插拔的,所以,系統可以輕松地進行替換,並且將維護時間減少到最小。值得一提的是,系統配置可以通過一套智能KVM和9個或10個帶硬碟的CPU板來實現。CPU可以配置成為不同的子系統。一個機架中的伺服器可以通過新型的智能KVM轉換板共享一套光碟機、軟碟機、鍵盤、顯示器和滑鼠,以訪問多台伺服器,從而便於進行升級、維護和訪問伺服器上的文件。
克服伺服器集群的缺點
作為一種實現負載均衡的技術,伺服器集群可以有效地提高服務的穩定性和/或核心網路服務的性能,還可以提供冗餘和容錯功能。理論上,伺服器集群可以擴展到無限數量的伺服器。無疑,伺服器集群和RAID鏡像技術的誕生為計算機和數據池的Internet應用提供了一個新的解決方案,其成本遠遠低於傳統的高端專用伺服器。
但是,伺服器集群的集成能力低,管理這樣的集群使很多IDC都非常頭疼。尤其是集群擴展的需求越來越大,維護這些伺服器的工作量簡直不可想像,包括伺服器之間的內部連接和擺放空間的要求。這些物理因素都限制了集群的擴展。「高密度伺服器」--BladeServer的出現適時地解決了這樣的問題。高密度伺服器內置了監視器和管理工具軟體,可以幾十個甚至上百個地堆放在一起。配置一台高密度伺服器就可以解決一台到一百台伺服器的管理問題。如果需要增加或者刪除集群中的伺服器,只要插入或拔出一個CPU板即可。就這個意義上來說,BladeServer從根本上克服了伺服器集群的缺點。
❽ web系統,一個主系統,若干個子系統怎麼做到主系統登陸了,子系統就不用登陸了
在性能不是要求特別高的情況下,最簡單的方式是用資料庫,用戶登錄了以後就設置相應的標志欄位。登錄的時候檢查這個標志欄位,就可以知道是不是已經登錄。
❾ 常見的介面測試工具有哪些
介面一般來說有兩種,一種是程序內部的介面,一種是系統對外的介面。
系統對外的介面:比如你要從別的網站或伺服器上獲取資源或信息,別人肯定不會把資料庫共享給你,他只能給你提供一個他們寫好的方法來獲取數據,你引用他提供的介面就能使用他寫好的方法,從而達到數據共享的目的,比如說咱們用的app、網址這些它在進行數據處理的時候都是通過介面來進行調用的。
程序內部的介面:方法與方法之間,模塊與模塊之間的交互,程序內部拋出的介面,比如bbs系統,有登錄模塊、發帖模塊等等,那你要發帖就必須先登錄,要發帖就得登錄,那麼這兩個模塊就得有交互,它就會拋出一個介面,供內部系統進行調用。
一、常見介面:
1、webService介面:是走soap協議通過http傳輸,請求報文和返回報文都是xml格式的,我們在測試的時候都用通過工具才能進行調用,測試。可以使用的工具有SoapUI、jmeter、loadrunner等;
2、http api介面:是走http協議,通過路徑來區分調用的方法,請求報文都是key-value形式的,返回報文一般都是json串,有get和post等方法,這也是最常用的兩種請求方式。可以使用的工具有postman、RESTClient、jmeter、loadrunner等;
二、前端和後端:
在說介面測試之前,我們先來搞清楚這兩個概念,前端和後端。
前端是什麼呢,對於web端來說,咱們使用的網頁,打開的網站,這都是前端,這些都是html、css寫的;對於app端來說呢,它就是咱們用的app,android或者object-C(開發ios上的app)開發的,它的作用就是顯示頁面,讓我們看到漂亮的頁面,以及做一些簡單的校驗,比如說非空校驗,咱們在頁面上操作的時候,這些業務邏輯、功能,比如說你購物,發微博這些功能是由後端來實現的,後端去控制你購物的時候扣你的余額,發微博發到哪個賬號下面,那前端和後端是怎麼交互的呢,就是通過介面。
前面說的你可能不好理解,你只需記住:前端負責貌美如花,後端負責掙錢養家。
三、什麼是介面測試:
介面測試是測試系統組件間介面的一種測試。介面測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的交互點。測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關系等。
OK,上面是網路上說的,下面才是我說的
其實我覺得介面測試很簡單,比一般的功能測試還簡單(這話我先這樣說,以後可能會刪O(∩_∩)O哈!),現在找工作好多公司都要求有介面測試經驗,也有好多人問我(也就兩三個人)什麼是介面測試,本著不懂也要裝懂的態度,我會說:所謂介面測試就是通過測試不同情況下的入參與之相應的出參信息來判斷介面是否符合或滿足相應的功能性、安全性要求。
我為啥說介面測試比功能測試簡單呢,因為功能測試是從頁面輸入值,然後通過點擊按鈕或鏈接等傳值給後端,而且功能測試還要測UI、前端交互等功能,但介面測試沒有頁面,它是通過介面規範文檔上的調用地址、請求參數,拼接報文,然後發送請求,檢查返回結果,所以它只需測入參和出參就行了,相對來說簡單了不少。
❿ 介面子系統通常由哪幾個部分組成
基本情況
介面——用於完成計算機主機系統與外部設備之間的信息交換。一般介面由介面電路、連接器(連接電纜)和介面軟體(程序)組成。
介面的指標速度;資源佔用。包括CPU時間、中斷、DMA等;連接距離;差錯控制、即插即用、供電等。
介面軟體、I/O匯流排、介面電路和連接的外部設備的關系
Intel865晶元組構成的計算機系統
介面電路的構成
介面的基本功能
數據傳送:CPU執行輸入/輸出指令與外部設備交換數據。
數據緩沖:用於輸入輸出過程中的暫存,對方不能及時接收數據時,將數據暫存在介面電路中。根據介面的需要可以是1個或2個位元組,或是FIFO存儲器,也可以是數據存儲區。
信號變換:完成計算機數字信號與I/O設備信號(如模擬信號、開關信號、計數脈沖等)的相互轉換。
中斷:大多數介面電路有中斷功能,以提高介面程序的效率。
介面的高級功能
差錯控制:實現檢錯或糾錯。
高層通信協議:實現呼叫、數據包、流量控制等。
即插即用、電源管理、動態配置等。
介面的操作:程序對介面的訪問(讀/寫)方式。不同的介面電路支持不同的操作方式。
查詢控制方式:在程序的主動控制下,通過讀取狀態寄存器了解介面的情況,完成相應的程序操作。為了及時了解介面的狀態,需要時間密集的查詢操作。CPU效率低。
中斷控制方式:當介面出現需要程序干預的事件,通過中斷通知CPU,CPU再讀取狀態寄存器,確定事件的種類,以便執行不同的代碼處理。CPU效率高而且及時。
DMA控制方式:CPU與介面的數據傳送採用DMA傳送,即傳送的具體過程由硬體(DMA控制器)完成,傳送速度比通過CPU快,尤其是在批量傳送時效率很高。
串列介面
串列傳送:數據信息以串列方式逐位傳送。如RS-232C、USB介面、SATA介面、鍵盤介面和滑鼠器介面等。
特點:節省介面線數目、傳送距離遠,介面電路復雜。
同步串列和非同步串列:串列介面可分為同步串列和非同步串列兩類,同步串列介面在連接線中有時鍾線,而非同步串列介面沒有時鍾信號線。
同步串列傳送:
非同步串列傳送:
RS-232C基本特性
·連接器:採用DB25和DB9(D型)連接器,DB25多為早期設備使用,DB9多為後來使用。
·電纜長度:RS-232C電纜的最大長度和線纜類型、通信速率等有關,一般情況下限制在15米。
·通信速率:固定可選的速率110、300、600、1200、2400、3600、4800、7200、9600、14400、19200、28800、33600、38400、57600、115200bps(BitPerSecond)。
·RS-232C信號電平:採用雙極非平衡方式,負電平(-3~-15V)代表邏輯1,正電平(+3~+15V)代表邏輯0。一般採用±5V或±12V。介面電路完成內部邏輯電平(0~3/5V)與介面信號電平(-12~+12V)的轉換。