【问题标题】:IEC 62056-21, implement the protocol over a gsm connectionIEC 62056-21,通过 gsm 连接实现协议
【发布时间】:2017-03-19 02:07:11
【问题描述】:

IEC 62056:21协议告诉我们如何处理能量计,非常简单!

我被卡住的部分是通过 GSM 数据通道实现。通常我会设置如下:

  • 300 波特率
  • 1 个奇偶校验位(偶数)

但是仪表没有通过串行连接,而是有一个 SIM 卡。使用调制解调器,我可以使用以下方式调用仪表:

AT&C1
ATDNumber

问题 1:设置

与协议设置相比,调制解调器使用不同的设置(波特率、停止位、奇偶校验)调用仪表,例如

  • 9600 波特率通话
  • 第一条消息的波特率为 300
  • xxxxx 新的主从共享波特率

我可以在通话过程中更改这些参数吗?

问题2:发送数据

建立呼叫后,我会向仪表发送如下信息:

/ ? Device address ! CR LF

这是缺少的部分,我不知道如何通过调用发送这些数据

我正在阅读并尝试几个库(如J62056pyserial),但我没有发现任何关于通过 gsm 调用发送数据的信息

编辑 我阅读了一个专有软件的踪迹,得到了这个:

TX: 140ms AT&C1E0V0 

RX: 32ms 0 

TX: 1203ms 

ATDT ##########

RX: 34656ms 1

RX: 0ms 5

RX: 0ms  

TX: 3234ms <NUL><NUL><NUL><NUL><NUL><NUL><NUL><NUL> *what is this?*

TX: 594ms /?########! (this the Request message) **start sending data**

部分不是Clear,这是modem开始发送数据的地方 编辑: 我读到了 8 个空字符,它们只是一个签入序列。

此刻,在调制解调器建立呼叫后,我将我的 8 位无奇偶校验序列转换为 7 + 奇偶校验序列。现在我可以从仪表发送和接收数据,我必须先测试其他功能,然后再编写我的解决方案来解决这个问题

【问题讨论】:

    标签: java python gsm at-command


    【解决方案1】:

    在不了解 IEC 62056:21 的情况下,如果您的电表通过 GSM 电路交换数据 (CSD) 支持这一点,那么在正常的非 GSM 情况下,关于速度和奇偶性的任何说明都与此无关。

    因为您设置的数据通话将是不透明的 CSD (NTCSD)。一个透明的调用将尽可能多地处理 gsm 连接(这在最好的情况下是困难的1),立即转发接收到的每个字节,并且没有缓冲,也没有任何重传支持。另一方面,非透明连接会将其数据接收/发送到中间实体,该中间实体反过来与另一个端点通信,并支持缓冲和重传。

    对于GSM NTCSD,手机中负责数据处理的部分称为TAE(Terminal Adapter Equipment)或TAF(T.A.function),相关协议2称为RLP(Radio Link Protocol) ) 由 3GPP 在specification 24.022 中指定。它是一种类似于HDLC 的链路层协议,它与GSM 网络中称为MSC(消息交换中心)的单元进行通信。然后是 MSC 与另一端通信,在不同且完全独立的通信线路上(可以是 PSTN、ISDN 或移动网络,具体取决于远程端的设备类型)。

         mobile modem  <----link1---->  MSC <----link2---->  remote endpoint
    

    重要的是这两个链接是 100% 独立的,而且它们不必必须具有相同的速度。

    因此,无论您的电表在其自身和带有 SIM 卡的嵌入式调制解调器之间的某个串行接口上​​使用的速度如何,都与无线电链路 1 的速度无关,而无线电链路 1 的速度本身与您的调制解调器将拥有的网络链路 2 的速度无关。

    所以上面应该是你问题的答案,但是让我填写一些关于link1和link2速度的更多信息,因为这可以通过两个AT命令AT+CBSTAT+CHSN(指定在27.007)。

    基本的GSM数据业务信道称为TCH/9.6(Traffic Channel),是一个净速9600bit/s(用户可见)和总速12000bit/s(网络可见)的信道。为了提高吞吐量 开发了 HSCSD(高速 CSD),它引入了一种新的信道编码和一个新的信道 TCH/14.4,它具有 14500bit/s 的总速度和 13200bit/s 的净速(当然所有营销人员都将其描述为 14.4 速度,尽管事实并非如此真的)。

    此外,HSCSD 允许将多个时隙捆绑在一起(多时隙)。 GSM中的一个频段被划分为8个时隙,其中一个活动呼叫占用下行1个时隙,上行1个时隙。因此,配置为仅支持一个频段的蜂窝塔最多支持 8 个同时呼叫。

    HSCSD 引入的是建立可以使用多个(相邻)时隙的呼叫的可能性,例如两个下行链路时隙和一个上行链路(表示为 2+1)。电话或网络支持的不同多槽配置被归类为多槽类3(据我记忆,2+1 是多槽类 10)。

    由于 HSCSD 既具有附加值,又占用更多网络资源,因此费用高于正常的 1+1 9600 通话,因此用户必须对是否使用 HSCSD 有一定的控制权。这是 通过引入控制link1速度的AT+CHSN命令来完成。

    通过 AT+CBST 命令(在 HSCSD 之前已经存在)实现了对向 MSC 提示链路 2 应使用何种速度的支持。 由于 AT 命令在移动电话中终止,它的值必须以某种方式转发给 MSC,这在某些情况下是在承载能力信息元素中的带外(关于 RLP 数据链路)中完成的的呼叫建立消息。

    因此,对于 NTCSD 呼叫在 GSM 网络中的速度,您可能需要了解的更多,但在爱立信手机中开发和维护 NTCSD 呼叫堆栈十多年后,我非常了解这一点。 ..


    1 虽然对透明数据有一些标准化的支持,但这更像是 90 年代为了支持 80 年代制造的设备而做的遗留事情。运营商今天不希望得到这种支持,因为开始工作和支持是一件很痛苦的事情。

    例如,GSM 上的传真是如此透明的承载,它是一种无处不在的大规模测试方法,即使您完全遵循规范,也不能保证它会起作用。您必须尽最大努力实现,然后您必须周游世界对其进行测试并尝试解决所有可能出现的问题(他们确实做到了。即使问题是网络出了问题,运营商可能不想修复它,因此您必须添加一些自定义解决方法)。

    一位负责传真支持的人员告诉我,在某些情况下,他们必须在收到请求之前就开始发送响应,以便确定时间(例如,他们必须猜测并预测远程传真的内容)会做)。

    今天制造的电话和运营商不像 2000 年初的 90 年代那样支持传真,这并非没有原因。

    2 此外还有 L2RCOP,它只是在基于数据包的 RLP 和物理串行接口之间采用的一种成帧方式。

    3 CSD和GPRS都支持多时隙,但不一定是同一个类,即CSD多时隙类独立于GPRS多时隙类。

    【讨论】:

      猜你喜欢
      • 2011-12-17
      • 2011-11-26
      • 1970-01-01
      • 1970-01-01
      • 2014-06-19
      • 2021-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多