搜索
 找回密码
 立即注册

简单一步 , 微信登陆

TDT与TOT

作者:wujunxian | 时间:2016-7-19 14:41:12 | 阅读:8853| 只看该作者
       TDT为时间和日期表(Time&Date Table),它仅传送UTC时间和日期信息。并且TDT仅包含一个段,其结构如下:
time_date_section(){
table_id                                          //  8                      uimsbf                                                  
Section_syntax_indicator             //  1                          bslbf             通常设为“1”
Reserved_future_use                     // 1                        bslbf
Reserved                                        // 2                        bslbf
Section_length                              //  12                      uimsbf                 见注释
UTC_time                                     //      40                      bslbf                     见注释
}
UTC_time(UTC时间):40位字段,包含以UTC和MJD形式表示的当前时间和日期。此字段前16位为MJD日期码,后24位按4位BCD编码,表示6个数字。如:93/10/13 12:45:00被编码为“0xC079124500”。

      TOT为时间偏移表(Time Offset Table),它包含了UTC时间和日期信息及当地时间偏移。传输此表的TS包PID为0x0014,table_id=0x73。下面给出了时间偏移段的结构:
time_offset_section(){
table_id                                         //   8                      uimsbf                                                  
section_syntax_indicator            //   1                          bslbf         通常设为“1”
reserved_future_use                 //     1                        bslbf
reserved                                     //    2                        bslbf
section_length                           //     12                      uimsbf                 见注释
UTC_time                                   //        40                      bslbf                     见注释
reserved                                     //    4                         bslbf
descriptors_loop_length            //    12                  uimsbf              
for(i=0;i<N;i++){
    descriptor()
}
CRC_32                                       //  32                  rpchof                  见注释
}
这里的UTC_time和TDT表是一致的,都是以UTC和MJD形式表示当前时间和日期;其格式也与TDT的UTC_time相同,这里不再赘述。需要特别注意的是这里的描述符descriptor()。下面给出了本地时间偏移描述符的结构:
local_time_offset_descriptor(){
descriptor_tag                         8           uimsbf         
descriptor_length                 8           uimsbf   
for(i=0;i<N;i++){
    coutry_code                           24             bslbf
    country_region_id                    6             bslbf
    reserved                                  1             bslbf
    local_time_offset_polarity       1             bslbf
    local_time_offset                    16            bslbf
    time_of_change                      40            bslbf
    next_time_offset                     16            bslbf
}
}
国家代码  country_code为24位字段,按照ISO 3166用3字符代码指明国家。每个字符根据GB/T 15273.1-1994编码为8位,并依次插入24位字段。假设3个字符代表了一个900至999的数字,那么country_code指定了一组ETSI定义的国家。其分配见ETR 162。国家组的国家代码应该被限制在同一时区内。
例如:英国由3字符代码“GBR”表示,编码为:“01000111 0100 0010 0101 0010”。

国家区域标识符  country_region_id为6位字段,表示country_code指明的国家所在的时区。若国家内部里没有时差,则置“000000”。
country_region_id 描述
00 0000 未使用时区扩展
00 0001 时区1(最东部)
00 0010 时区2
…….. ……..
11 1100 时区 60
11 1101 – 11 1111 预留

本地时间偏移极性 local_time_offset_polarity,1位字段,用于指明随后的local_time_offset的极性。置“0”时,极性为正,说明本地时间早于UTC时间(通常在格林威治以东);置“1”时,极性为负,说明本地时间晚于UTC时间。
本地时间偏移 local_time_offset,16位字段,指出由country_code和country_region_id确定的区域的相对于UTC的时间偏移,范围为-12小时至+13小时。16比特含有4个4位BCD码,顺序为小时的十位,小时的个位,分的十位,分的个位。
时间变化  time_of_change,40位字段,指明时间改变时当前的日期(MJD)与时间(UTC),见附录C。该字段分为两部分,前16位给出了LSB格式的日期(MJD),后24位给出了UTC时间(6个4位BCD码)。
下一时间偏移  next_time_offset,16位字段,指出由country_code和country_region_id确定的区域,当UTC时间变化时的下一个时间偏移,范围为-12小时至+13小时。此16比特域为4个4位BCD码,依次为时的十位,时的个位,分的十位,分的个位。

收藏
收藏0
分享
分享
点赞
点赞3
反对
反对0
回复

使用道具 举报

大神点评3

沙发#
bean.yang 发表于:2016-7-22 09:12:05
科普科普
回复

使用道具 举报

板凳#
halleyhuang 发表于:2016-7-25 18:06:42
技术大牛贴
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

地板#
HaoQiao 发表于:2016-8-8 17:59:24
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
手机版