SPI interface and ASI interface in DVB-C video transmission

In the transmission interface of current DVB-C system equipment, there are two MPEG2 video stream transmission interface standards: asynchronous serial interface ASI and synchronous parallel interface SPI.
There are a total of 11 useful signals in SPI. Each signal is differentiated into two signals to improve the anti-interference of transmission. DB25 is used for transmission on the physical link. Therefore, the connection is more and complicated, the transmission distance is short, and it is prone to failure. However, SPI is a parallel 11-bit signal with simple processing and strong scalability. Therefore, the output of the current general MPEG2 video encoder and the input of the video decoder are standard SPI interface signals.
ASI uses serial transmission, only one coaxial cable is needed for transmission. The connection is simple and the transmission distance is long. According to the advantages and disadvantages of SPI and ASI, it is often necessary to convert between SPI and ASI interfaces when transmitting signals.
1. SPI signal structure
The parallel transmission system SPI includes a one-bit clock signal, 8-bit data signal, one-bit frame synchronization signal, and one-bit data valid signal. The frame synchronization signal corresponds to the sync byte 047H of the TS packet, and the data valid signal is used to distinguish the length of the TS packet from 188 bytes or 204 bytes. When the TS packet is 188 bytes long, the data valid signal is always high, and all signals are synchronized with the clock signal.
2. ASI interface ASI transmission streams can have different data rates, but the transmission rate is constant at 270Mbps, so ASI can send and receive MPEG2 data at different rates. The ASI transmission system has a layered structure. The top layer and layer 2 use the MPEG2 standard ISO / IEC 13818-1 (SYSTEM), and layer 0 and layer 1 are FC fiber channels based on 1SO / IEC CD 14165-1. FC supports multiple physical transmission media, such as coaxial cable transmission.
First convert the 8-bit codeword of the packet-synchronized MPEG2 transport packet into a 10-bit codeword; then when parallel / serial conversion is required, when a new word is required and the data source is not ready, a K28.5 synchronization should be inserted Word to achieve ASI's fixed 270Mbps transmission rate. The formed serial bit stream will be sent to the coaxial cable connector through the buffer / drive circuit and the coupling network. When reaching the receiving end through the coaxial cable, when receiving the received data, it must first go through the connector and the coupling network, coupled to the circuit that recovers the clock and data, and then perform serial / parallel conversion; in order to restore byte synchronization, the ASI decoder The K28.5 sync word must be searched first. Once the sync word is searched, the boundary of the subsequent received data is demarcated, thereby establishing the correct byte arrangement of the output bytes of the decoder; finally, 10 / 8bit conversion is performed to recover Packet synchronized MPEG2 TS stream data. But the K28.5 sync word is not valid data, so it must be deleted when decoding.

In-depth analysis of the first-level cache and second-level cache of the technical zone CPU eMMC mass burning dilemma, do you really know? Isolation flyback and non-isolated BUCK application design plan Schottky barrier diode selection and application guide How to use Altium in program design Designer puzzle?

Follow WeChat

Interesting and informative information and technical dry goods

Download Audiophile APP

Create your own personal electronic circle

Follow the audiophile class

Lock the latest course activities and technical live broadcast
Collect People collection
share it:
comment
Publish

related suggestion

var check_allow = "/d/Api/iscantalk.html"; var add_url = '/ d / article / write /'; function CheckLogin () {now_uid = ''; var ElecfansApi_checklogin = '/ webapi / passport / checklogin'; var logout_url = "{: U ('Login / logout')}"; var logout_url = 'http://bbs.elecfans.com/member.php?mod=logging&action=logout&refer=front'; $ .get (ElecfansApi_checklogin, function (data, textStatus) {if (data! = "") {EchoLoginInfo (data); CheckEmailInfo (data); data = $ .parseJSON (data); now_uid = data.uid; / * var login_content = 'write an article
'+ data.username +'
Quit '; * / var login_content =' write an article
'+ data.username +'
Set exit '; $ (' # login_area '). Html (login_content); var win_width = $ (window) .width (); if (win_width> 1000) {$ ("# mine"). MouseDelay (200) .hover (function () {$ ("# mymenu"). show ();}, function () {$ ("# mymenu"). hide ();});}} else {var content = 'Login Registration'; $ ('# login_area'). html (content); $ (". special-login"). click (function (e) {$ .tActivityLogin (); return false;});}});} $ (function () {// comment ------------------------------- var comment = $ ("# comment"); var comment_input = $ ("# comContent"); // Submit comment click event interaction $ ("# comSubmit2"). on ('click', function () {var content = comment_input.text (); // Empty input box comment_input. html (""). focus (); // Submit data to server $ .ajax ({url: '/plus/arcComment.php', data: {aid: $ ("# webID"). val (), dopost : 'apiPubComment', content: content}, type: 'post', dataType: 'json', success: function (data) {// Data format returned: if (data.status == "successed") {// Build temporary comment DOM var dom = ''; dom + = '
'; dom + =' '; dom + ='
'; dom + ='

'+ data.data.username +' '; dom + ='

'; dom + =' '+ content +' '; dom + =' '; dom + =' just now '; dom + =' '; dom + =' '; // insert a temporary comment to the list $ ("# comment ") .append (dom);} if (data.status ==" failed ") {// alert (data.msg); layer.msg (data.msg);}}}); return false;}); (function () {/ * * Insert single sign-on JS * / var setHost = 'https://passport.elecfans.com'; // Set domain name var script = document.createElement ('script'); script.type = 'text / javascript'; script.src = setHost + '/public/pc/js/t.passport.js'; script.setAttribute ("id", "sso_script"); script.setAttribute ("data-ssoSite", setHost); script.setAttribute ("data-ssoReferer", encodeURIComponent (location.href)); script.setAttribute ("data-ssoSiteid", "11"); var body = document.getElementsByTagName ("body"). item ( 0); body.appendChild (script);}) () / * * It is recommended to modify the style of the article without a picture * * / $ (". Article .thumb"). Each (function () {if ($ (this). find ('img'). attr ('src') == "") {$ (this) .find ('img'). remove (); $ (this) .parent (). css ('padding-left ',' 0px ');}}); / * Baidu share * / window._bd_share_config = {common: {bdText: '', // Custom share content bdDesc: '', // Custom share summary bdUrl: window.location.href, // Custom share URL address bdPic: ''} , share: [{"bdSize": 60, "bdCustomStyle": true}]} with (document) 0 [(getElementsByTagName ('head') [0] || body) .appendChild (createElement ('script')). src = 'http://bdimg.share.baidu.com/static/api/js/share.js?cdnversion=' + ~ (-new Date () / 36e5)]; var add_url = '/ d / article / write / '; // var check_allow = "{: U (' Api / iscantalk ')}"; var check_allow = "/ d / api / iscantalk"; var click_items_length = $ ('. art_click_count '). length; if ( click_items_length> 0) {var id_str = ''; $ ('. art_click_count'). each (function () {id_str + = $ (this) .attr ('data-id') + ',';}) // var url = "{: U ('Api / getclickbyids')}"; var url = "/ d / api / getclickbyids"; var id_data = 'id_str =' + id_str; $ .ajax ({url: url, data: id_data, type: 'post', dataType: 'json', success: function (re) {if (re.list.length> = 1) {var list = re.list; for (var i in list) {var t emp_id = list [i] ['id']; var temp_span = $ (". art_click_count [data-id =" + temp_id + "]") temp_span.html (list [i] ['click']);}} }})} $ ("# comContent"). click (function () {if (now_uid == '') {$ .tActivityLogin (); return false;}}) $ (function () {var follow_wrap = $ ( ".author-collect"); var now_uid = "{$ _super ['uid']}"; var face_src = "{$ _super ['uface']}"; var getFollowNum = $ (". followNum strong"). html (); // Follow $ (window) .on ('click', '.author-collect', function () {if (now_uid == '') {$ .tActivityLogin (); return false;} if ( $ (this) .attr ('id') == 'follow') {$ .post ('/ d / user / follow', {tuid: article_user_id}, function (data) {// Data format returned: if (data.status == "successed") {$ (". followNum strong"). html (++ getFollowNum); follow_wrap.html ('followed'). attr ('id', 'cancelFollow'). css ( 'background', '# 999'); var follow_user = ' '; $ (' # follow_list '). append (follow_user);} if (data.status == "failed") {alert (data.msg);}});} else {// Unfollow if ($ ( this) .attr ('id') == 'cancelFollow') {$ .post ('/ d / user / cancelFollow', {tuid: article_user_id}, function (data) {// Data format returned: if (data .status == "successed") {follow_wrap.html ('Follow'). attr ('id', 'follow'). css ('background', '# f90'); $ (". followNum strong"). html (-getFollowNum); $ ('# follow_list .face'). each (function () {var target_uid = $ (this) .attr ('data-uid'); if (target_uid == now_uid) {$ ( this) .remove ();}})} if (data.status == "failed") {alert (data.msg);}}); return false;}}});});}); / * var myface = "{$ _super ['uid'] | avatar}"; var myname = "{$ _super ['username']}"; var article_id = {$ article ['id']}; var article_user_id = {$ article ['mid']}; // Article author ID $ (function () {<notempty name = "clearnum"> // Reduce the number of reminders var count = parseInt ($ ("# noticeCount"). html ()); count = count-{$ clearnum}; $ ("# noticeCount"). html (count); if ( count

Indoor Gaming Projector

Shenzhen Happybate Trading Co.,LTD , https://www.happybateprojectors.com