《 空中接口学园 》
>>   PHS技术
>>>>  我们讨论一个STD28的实现如何

--  作者:mapleliu
--  发布时间:2005-02-24 16:23:16
STD28规定了PHS的空中接口,但是并没有规定具体实现.
我们讨论一个符合STD28的实现如何?
要么我们先假定这是一个PS的实现,这样也简单些.

我先来抛砖----

我们知道,通常协议的要素有三:消息,状态机,定时器
这三者协议中已经规定,对实现来说,状态机是重点(个人意见),可以用函数跳转表,函数指针来实现.
L1的实现有些麻烦,一般PS或CS会选用某个厂商的ASIC,L1在ASIC中会部分地以interrupt的方式实现,尤其是牵涉到sync的问题(sync burst应不在此列,主要指bit sync,LCCH的帧同步),当然,控制RF等等硬件部分也要由L1来做.
L1的时序常常还有一个问题,由于检测RSSI的ADC常常是和检测PS电池电量的ADC共用,所以涉及到一个ADC的切换问题,换句话说,考虑到ADC转换的时间,必须在PS的TDMA帧的发送slot中完成电池电量的检测,在接收slot到来以前切换ADC并稳定,以便在接收slot中侦测RSSI.
综合来说,L1的设计涉及到ASIC中对BASEBAND 部分的IC设计,重点是interrupt的设计(?)

从协议的control sequence可以看到,L1和L2之间的msg交互是没有的(个人意见),类似地,CC只和L2打交道,RT在没有切换的时候只和L1打交道;但在实现中,L2从L1中得到空中来的信号,并将自己组好包的数据交给L1,这种交互常常通过共享内存来实现.
所以,L2的设计,重点除了状态机实现,消息解析,定时器异常处理(这个应该归入状态机实现中?),还有和L1的交互?

至于L3,相对简单一些,主要是状态机实现和异常处理?

另外,还要一个定时器的问题,一般地,timer是由一个task以定时器队列的形式实现.
L2的timer是否可以和L3的timer放在同一队列中?因为这2者的定时要求还是L2高一些?

还有一个关键的问题,牵涉到OS,一般来说,PHS起源于日本,所以PS上的OS一般选用ITRON--据说这个OS在日本占有率第一.
我们假定一些简单些的实现,即操作系统的消息队列是不支持优先级的,是FIFO的.
另外,似乎这个ITRON是非抢占式的OS,换句话说,在编写协议的时候,要考虑到此次操作(或说函数)的粒度不能太大,否则有可能得不到及时的执行.
实际上,OS和timer也有关联--,一般,OS都提高timer的service,但是,我们需要自己去维护timer task,因为OS提高的TIMER服务在内核中,如果使用,可能影响OS的实时性.

暂时就这么多,大家多多指正啦.


--  作者:tom
--  发布时间:2005-02-24 17:03:40
写得很专业,不知道哪位做手机的同行来讨论一下。
  1)L1还需要做CRC.
   2) "必须在PS的TDMA帧的发送slot中完成电池电量的检测,在接收slot到来以前切换ADC并稳定"
   一来电池电量的检测频率很低(以分钟计),二来PS只占用四个时隙中一个,时间余量很大。为了提供PS的续航能力和减少处理能力的占用,检测RSSI频率也不会很高(估计以复帧计)。
   3)RT还是需要通过L2才能到L1的,不然SACCH怎么转换数据呢?
   4)个人感觉L1和L2比较简单,L3的各种意外异常情况才比较复杂。
--  作者:transmit
--  发布时间:2005-02-24 17:20:21
mapleliu会是一个很好的研发人员,可惜俺没干过研发。学习~
--  作者:mapleliu
--  发布时间:2005-02-25 13:27:55
二位过奖了.
呵呵,现在讨论实现嘛,还没有到编码,我们当需求部分如何?
transmit,听听你的高见:)
目前已经有4条评论    >>> 发表你的见解

Powered by:Old version
Copyright ©2002 - 2019空中接口学园 , 页面执行时间:42.969毫秒