菜单 English Ukrainian 俄语 主页

面向爱好者和专业人士的免费技术图书馆 免费技术库


无线电电子与电气工程百科全书
免费图书馆 / 无线电电子和电气设备方案

开发基于 PIC 控制器的机顶盒。 无线电电子电气工程百科全书

免费技术库

无线电电子与电气工程百科全书 / 微控制器

文章评论 文章评论

在微控制器上制造的设备可以为开发的结构提供在刚性逻辑上难以甚至不可能实现的功能。 本文介绍了基于PIC控制器的各种机顶盒的设计。

最近,无线电工程文献中出现了大量关于电话线小型机顶盒的描述。 它们不需要 220 V 电源供电,易于制造且无需调谐,这使得它们对各种培训的无线电爱好者具有吸引力。 当这种设备由单独的元件制成时,无线电爱好者可以详细了解其操作,并且如果需要,可以对其进行修改以满足他的要求。 然而,当使用微控制器时,无线电爱好者无法理解产品操作的主要算法。 此外,要找到已发布电路的固件并不总是可能的,更不用说程序的源代码了。

对于那些想要使用 PIC 控制器独立设计设备的人来说,迟早会出现开发自己的程序的问题。 本文讨论了为电话线编写机顶盒程序的方法。 “前缀”是指相对简单的设备,例如拦截器、密码锁。 微型 PBX 等,仅由电话线供电并与脉冲拨号器一起使用。

作者假设读者至少总体上熟悉 P/C 控制器架构和指令集。 需要再次提醒的是:所有连接到公共电话网络的设备都必须获得证书。

在最一般的形式中,任何机顶盒都是监视电话线状态的设备。 根据其参数的变化,采取某些行动。 它通常监测线路中的电压,并通过其变化来判断听话器是否摘机、拨号或接收来电信号。

让我们仔细看看这是如何发生的。 使用空闲线路,即当电话机的听筒放下时,线路上的电压应在 48 ... 60 V 范围内。当听筒取下时,约 30 mA 的电流将流过设备和如果通过图 5 所示的分压器施加该电压,电压将降至 10 ... 1 V。 1、对于PIC控制器的输入,可以记录拿起听筒的时刻或读取所拨号码的数字。 当供电电压为 4 V 时,P1,3C 控制器的工作阈值范围为 1,4 ... XNUMX V(意味着没有施密特触发器的输入)。 因此,当管子被铺设时,控制器将给出高电平,而当移除时,它将给出低电平。

在 PIC 控制器上开发机顶盒

如果多部电话机同时连接到电话线上,则无法通过其中的电压来判断哪个特定设备处于活动状态。 当需要监控某台话机的状态时,可以使用如图2所示的图。 1a. 当管子下降时,晶体管VT1截止,其集电极为高电平。 当管子被移除时,电流开始流过电阻器R1。 晶体管VT1打开,其集电极出现低电平。 通话期间需要二极管 VDXNUMX 对电话电容器进行放电。

在 PIC 控制器上开发机顶盒

上图。 图2b示出了用于控制电话中的电流的另一个单元。 其工作原理类似,但使用光耦合器代替晶体管。 这个节点是不同的。 它可以连接到线路上而无需观察极性。

在设计电流监控节点时,必须考虑以下几点。 首先,当听筒关闭时,电话中的电流也会流动。 有时它相当大 - 超过 0.5 mA。 根据 GOST 7153-85 确定(参见 [11])。 设备不应在此电流下运行。 其次,对于呼叫信号,这些设备的输出将具有频率为 25 Hz 和不确定占空比的脉冲。 因此,处理程序必须考虑到这一点,以免将呼叫信号误认为是拿起电话。

而第三个不愉快的时刻是,在旧PBX的某些电话线上,有时整条线路的电流会出现短暂的下降,这可以被处理器感知为将听筒放在电话上或拨打号码” 1”。 这通常在建立或断开连接时发生。 为了避免这种情况下的错误,建议在检测到手机电流减少后,检查整个线路上的电压。 如果电话中的电流消失,并且线路中的电压没有增加,那么我们可以假设电话上没有采取任何操作。

除了监控抢占或拨号过程之外,通常还需要记录来电信号。 通常,它是频率为 25 Hz、峰值幅度为 100 ... 150 V 的正弦曲线,同时保持恒定分量,或者是 60 V 量级的曲折。在最简单的情况下,出现该信号可以通过与监测线路电压相同的方式确定,即使用传统的电阻分压器(见图 1)。 电阻器 R2 的阻值应为 27 kOhm。

超过 100 V 的电压不仅在呼叫信号期间可能出现,而且在拨号或挂断时也可能出现。 在某些类型的旧 PBX 运行期间会发生这种情况,这是由于站继电器的电感造成的。 因此,程序必须“能够”区分虚假脉冲和呼叫信号。 上图。 图3示出了提取可变分量的振铃信号传感器的图。 当预先未知线路电压和振铃信号时,优选使用该传感器。

在 PIC 控制器上开发机顶盒

在大多数情况下,所描述的控制方法足以创建一个完全现代化的电话线机顶盒。 通常,在这样的设备中,控制器控制电流开关KR10T4KT1V等,通过电流开关KRXNUMXTXNUMXKTXNUMXV等来切换电话机或一些其他元件。

应特别注意控制器的电源装置(图 4)。 当它连接到线路时,控制器电源电压将相对缓慢地增加(大约 1 ... 2 秒),这不允许通过其标准方式重置处理器。 这意味着程序执行可以从任何 ROM 地址开始(至少理论上)。 如果程序构建失败,即使启用了看门狗定时器,器件上电期间也会出现“冻结”现象。 因此,程序算法必须以这样的方式开发:在对处理器输入的某些初始影响下(例如,当听筒掉落并且没有呼叫信号时),程序可以返回到某个起始点并执行自初始化,无论 RAM 寄存器中的值如何。

在 PIC 控制器上开发机顶盒

对于小程序来说,这个条件很容易满足。 然而,随着程序大小的增长,其可见性会变差,有时您必须采取特殊措施来检查程序是否有挂起的可能性。 这是非常重要的一点,因为电话机顶盒是这样一个不断运行的设备,至少每隔几个月处理器就会因为一些外部干扰而出现故障。 因此,程序未完成的设备要么会停止工作,要么甚至会造成损害,例如捕获线路。

低功耗限制了控制器的时钟速度。 KZh101V 电流稳定器可提供高达 160 μA 的电流。 这意味着控制器的时钟频率必须使得该电流足以使其正常运行。 通常,使用频率为 32768 Hz 的“时钟”石英谐振器。 或频率约为50kHz的RC振荡器。 如果需要较大的时钟频率,例如 4 MHz。 处理器可以在睡眠模式下使用,仅用于某些操作。

现在让我们继续编程。 我们来为该设备编写一个小程序,其方案如图5所示。 16. 该设备的实际意义不大,但通过它的例子,您可以了解电话机顶盒编程的基本方法。 该器件采用最流行的PIC84FXNUMX控制器。 得益于 EEPROM,它最适合调试简单的程序。 它的大部分功能,如中断、定时器、看门狗定时器、睡眠模式,都不会被使用。

在 PIC 控制器上开发机顶盒

该设备控制线路中的电压(我们将此信号表示为 Uline)和通过电话的电流 (Itel)。 DD2控制器的RB1输出控制电流开关K1,它可以关闭到电阻器R3的线路。 该设备可以读取电话机上拨打的号码,提供对长途通信的编码访问,并阻止从任何直接连接到线路的设备进行拨号(“反盗版”模式)。 为简单起见,长途接入代码由一位数字组成,必须在长途接入数字之后拨打。

我们接受程序文本中使用的一些符号。 RAM寄存器的名称和子程序的名称将用小写字母表示,单词开头大写,常量用大写字母表示,标签用小写字母表示,前缀加下划线。如果名称由多个单词组成,我们还将用下划线分隔它们。 作为标头,我们将使用带有控制器寄存器 p16f84.inc 描述的标准文件。 该文件随 MPLAB PIC 控制器的开发环境一起提供。

让我们使用 equ 伪指令定义初始化端口(TRVS 寄存器)以及 OPTION 和 INTCON 寄存器的常量,并设置长距离访问的密码编号,使其为数字“3”(表 1)。

在 PIC 控制器上开发机顶盒

接下来,我们定义将在程序中使用的 RAM 寄存器。 这可以通过为每个符号寄存器名称指定其自己的地址(例如,REG1 equ OxOC)来完成,但使用 cblock 和 endc 指令更方便。 在它们的帮助下,您可以为所使用的寄存器块设置单个起始地址,并且汇编器将在汇编过程中按升序排列所有寄存器。 唯一需要注意的是。 - 使给定名称的总数不超过物理上存在的控制器寄存器的数量。 表中显示了设置寄存器名称的程序片段。 2.

在 PIC 控制器上开发机顶盒

让我们使用 #define 指令来设置所使用的输入/输出行的符号名称以及标志的名称(表 3)。

在 PIC 控制器上开发机顶盒

表中。 图 4 显示了初始化程序。

在 PIC 控制器上开发机顶盒

现在让我们创建一个所谓的等待循环,即该代码。 当管道铺设完毕且没有呼叫信号时,该程序将执行该命令。 通常此循环的任务是执行初始化并监视任何输入。 就我们的任务而言,程序需要监视线路中的电压,等待管子被移除时电压下降。 还需要重置所有标志、重置Figure 和Number_of_Figure 寄存器并向K1 键的输入C 应用低电平。 以免通过电阻器 R3 闭合线路(表 5)。

在 PIC 控制器上开发机顶盒

正是在这个周期中,程序在启动时应该下降,即使它的执行是从随机地址开始的。

如果U线上检测到低电平,则需要判断听筒是否真正摘机或者线路上有振铃信号。 在呼叫信号期间,Uline 输入将接收频率为 25 Hz 的脉冲。 为了区分它们,您需要确保在一段时间内(超过几个振铃周期)Uline 较低。 根据[1],在电话上“拿起听筒”超过 250 毫秒被认为是线路关闭。 让我们编写一个程序片段来监视线路上的低电压 300 ms(表 6)。

在 PIC 控制器上开发机顶盒

此代码段应紧跟上一个代码段。

如果线路上有低电压持续 300 毫秒,则表示听筒摘机。 然后需要检查Itel输入处是否为低电平,即识别听筒是否是从通过设备连接的电话上取下的,或者是从直接连接到线路上的设备上取下的。 当涉及“自己的”电话时,程序必须切换到读取其上拨打的号码的模式,否则拨号应被阻止。 因此,让我们在程序中添加两行:

btfsc 意大利

调用块

Block 子例程执行阻止拨号的功能。 最简单的形式,其操作算法可能如下所示:将 Key 输出设置为高电平,并将线路靠近电阻器 R3。 一段时间后,例如1秒后。 在 Key 上设置低电平,并在短暂延迟(约 20 ms)后进行检查。 管子未就位。 如果未铺设管子,则再次对 Key 施加高电平,并重复此循环。 否则,执行 goto_begin 语句并重新开始程序。 我们不会考虑该子例程的汇编文本,因为它非常简单并且不需要特殊注释。

接下来,读取电话上拨打的号码。 如上所述,拨号是一系列需要重新计算的脉冲。 我们将使用 Itel 输入读取拨号号码,尽管也可以使用 Uline 完成。 该部分程序的汇编代码如表所示。 7.

在 PIC 控制器上开发机顶盒

在标记为 _dial_01 的循环中,程序等待开始拨号。 同时,它不断调用lnit初始化例程,并将K1键的门设置为低电平。 这是避免启动设备时冻结或因外部干扰而发生故障所必需的。 如果您不重置按键输出,则可能会发生这种情况。 当R3上出现高电平时,R1上的线路将闭合,其中的电压将下降。 结果,程序永远不会退出这个循环。 如果 TRISB 寄存器未初始化(在 lnit 子程序中完成),则由于出现故障,Key 线可以编程为输入,并且 K200 键将通过门上累积的电荷打开,这将再次导致程序冻结。 为了避免这种情况,请在栅极K1和公共线之间连接一个阻值约为XNUMX kOhm的电阻。

Itel出现高电平后,接收脉冲计数器复位。 此外,在清除抑制标志后(其目的将在下面解释),调用 Delay10 子例程,该子例程执行 10 ms 的延迟。 由于该子例程非常简单,因此这里不再给出该子例程的文本。 这同样适用于类似的 80ms 延迟子程序。

然后我们检查线路中的电压是否增加。 如果不是,则认为电话电流掉线是线路电流掉线造成的,而不是拨号器操作造成的,程序返回_dial_0l标签。 否则,由 Counterl o 和 CounterHi 寄存器组成的计数器将被初始化,持续时间为 400 ms。 如果在此期间 Itel 上的高电平没有消失,那么我们可以假设手机已经放下,并且控制权将转移到开头,即转移到 _begin 标签。

当出现低电平时,会延迟 10 ms,以防止拨号器触点弹跳,然后递增接收脉冲的计数器,并将时间计数器初始化为 100 ms。 当新的脉冲出现时,程序执行类似的动作,如果100ms内没有检测到新的脉冲,则认为数字拨号完成,并且接收数字的计数器递增。

接下来,您需要处理接收到的数字。 在我们的示例中,需要使用密码来禁用对远程通信的访问。 假设拿起听筒后立即拨打号码“8”即可实现长途通信。 表中显示了本例的程序片段。 8.

在 PIC 控制器上开发机顶盒

如果抑制和 Parol 标志被重置,并且在拿起听筒并拨打第一个数字后,情况确实如此。 然后程序检查拨打的数字是否等于八。 如果该等式为 true,则设置 Supress 和 Parol 标志。 设置抑制标志会导致在拨号器打开线路时,电阻器 R80 连接到线路并持续 3 ms,因此不会跳过线路中数字的拨号。 然而,在断开电阻R3与线路的连接后,程序仍然能够重新计算拨号脉冲。

如果输入的密码数字与给定的数字匹配,则这两个标志都会重置,并且控制器会停止阻止该组数字。 如果密码输入不正确,则仅重置 Parol 标志,并且该设备将继续被阻止,直到此时。 直到电话被挂断。

拨打号码“2”被阻塞时电话线电压图如图6所示。 XNUMX.

在 PIC 控制器上开发机顶盒

在时间 t,拨号器打开线路。 然后,在时间间隔t0-t1,电压上升,直到控制器检测到。 进一步地,在时刻t1。 连接电阻R3。 在t2时刻,拨号脉冲结束,在U时刻,电阻R3截止。

因此,从线路打开直到电阻器 R3 导通,只有短脉冲会传递到线路中。 大多数 PBX 不会受到这些脉冲的影响,但是,在某些电子电话交换机中,它们可能被视为正在拨号。 为了消除这些脉冲,您可以不使用电阻器而是使用齐纳二极管来阻止该装置。 在这种情况下,必须更改程序操作算法,使齐纳二极管在 80 ms 内不连接。 如电阻R3。 但不断。 在这种情况下,如果拨号期间线路断开,电流将流经齐纳二极管,而当线路闭合时,电流将流经电话。 这种阻止拨号的方法被用在[2]中描述的交换机中。

现在考虑该装置的操作,其方案如图7所示。 XNUMX. 它是一个并行电话拦截器,具有一定的附加服务功能。 该拦截器旨在将两台电话机 (SLT) 连接到一条线路,并在拿起第一部电话的听筒时可以优先处理。

在 PIC 控制器上开发机顶盒

SLT 1 的优先级允许将空闲线路转移到此电话,即使该电话正在被另一部电话使用。 在这种情况下,在断开连接之前,TA2订户将收到警告信号,并给出大约6 ... 7秒的时间来结束通话。 此功能使您可以让第一部手机的所有者尽可能不注意到第二部手机的存在。 可以使用 SA1 切换开关启用或禁用它。 使用 SA2 拨动开关,您可以为来电设置此 TA2 操作模式,当第三个呼叫后开始振铃时。

该阻断器采用廉价且尺寸最小的 PIC12C508-04/P 控制器制成。

两部电话均通过当前按键 VT1 和 VT2 连接。 每个电话均由使用光耦合器 U1.1 和 U1.2 的电流控制。 来电信号通过分频器R4R5进行监听。

拨动开关SA1和SA2以这样的方式接通,即它们的位置可以通过向晶体管VT1和VT2的栅极施加低电平来确定。 在这种情况下,当拨动开关闭合时,电话电流控制系统的输出将为低电平,而当拨动开关打开时,电话电流控制系统的输出将为高电平。 此包含不需要单独的处理器输出,并且允许您仅使用整个拦截器的五个可用控制器线路。

然而,有一个特性导致使用电阻器 R9 和 R10。 如果没有它们(即,当信号直接从光耦合器晶体管集电极施加到控制器输入时),在连接设备时,可能会出现一种情况,例如 GP2 和 GP3 输出将被编程为带有以下命令的输出:每个上分别有零和一个信号。 如果同时SA1切换开关闭合,则电流将流过VD3二极管,由于电源功率低,将不允许电源电压达到所需的水平。 时钟发生器将无法启动,设备将无法工作。 该电流必须受到限制,这就是这些电阻器的用途。

拦截器程序的构建与上面讨论的类似。 在初始周期中,发生初始化并将晶体管VT1和VT2的栅极设置为高电平。 此周期还监视电话的状态并检查来电信号。 拿起听筒后,两部电话都会短时间关闭,并确定拨动开关SA1和SA2的位置。 它们的状态存储在相应的程序标志中。

然后程序进入拨号待机模式。 在这种情况下,如果听筒从 TA2 上取下并关闭 SA1 拨动开关。 经过很短的时间间隔后,第一部电话连接到线路。 这允许提供优先级功能。 如果您在 TA2 上开始拨号,第一部话机将再次关闭以避免拨号时振铃。 拨完最后一位数字后,会再次接通。

如果 SA1 切换开关打开,则 TA1 将不会连接到线路,并且该设备将作为普通的并行电话拦截器工作。

如果在使用第二部电话通话时拿起 TA1 上的听筒,该器件会通过向 VT2 栅极施加音频电压来生成短暂的警告信号。 TA1 断开连接,并形成 6...7 秒的延迟,为 TA2 用户提供结束通话的机会。 之后,再次发出信号,TA2 关闭,1 秒后线路转移到第一部电话。 这样,就实现了第一话机的优先功能。

程序按如下方式处理来电。 当电阻R5出现高电平时,程序读取SA1拨动开关的状态。 SA2,当 SA2 闭合时,将 TA2 与线路断开。 接下来,控制器重新计算呼叫中的周期数。 如果该数字小于程序常量之一中指定的数字,则认为干扰已沿线路传递,而不是呼叫。 然后程序再次开始执行。 否则,消息计数器的内容会增加,并且程序等待从其中一部电话拿起听筒或出现新呼叫。 这会在大约 8 秒内发生。 如果在此期间没有拿起听筒并且没有收到下一条消息,那么我们可以假设呼叫信号结束并且程序再次开始执行。

当检测到下一条消息并且其中的周期数大于或等于程序常量中指定的周期数时,消息计数器递增。 当该计数器达到状态 3(该数字在程序常量部分中设置并且可以更改)时,TA2 将连接到线路。 因此,他也会对下一个包裹发出呼叫信号。

R13C2 电路设置控制器内部振荡器的频率。 图中所示的额定值为 50 kHz ± 10%。 LED HL1 和 HL2 指示电话繁忙,使用 HL3 您可以确定连接时线路的极性。

该阻挡器组装在由单面箔玻璃纤维制成的印刷电路板上(图 8)。

在 PIC 控制器上开发机顶盒

焊接控制器时,必须禁用看门狗定时器。

图中设备的程序文本。 7

文学

  1. Kialuk A. I. 国外和国内生产的电话机的设备和维修手册。 - M.; 安电信。 1999 年。
  2. Kulakov V. 电话微处理器开关 1x5 - 无线电。 1999 年,第 10 期,第 30-32 页。

作者:V.Kulakov,顿河畔罗斯托夫

查看其他文章 部分 微控制器.

读和写 有帮助 对这篇文章的评论.

<< 返回

科技、新电子最新动态:

用于触摸仿真的人造革 15.04.2024

在现代科技世界,距离变得越来越普遍,保持联系和亲密感非常重要。萨尔大学的德国科学家最近在人造皮肤方面的进展代表了虚拟交互的新时代。萨尔大学的德国研究人员开发出了超薄膜,可以远距离传输触觉。这项尖端技术为虚拟通信提供了新的机会,特别是对于那些发现自己远离亲人的人来说。研究人员开发的超薄膜厚度仅为 50 微米,可以融入纺织品中并像第二层皮肤一样穿着。这些薄膜充当传感器,识别来自妈妈或爸爸的触觉信号,并充当将这些动作传递给婴儿的执行器。父母触摸织物会激活传感器,对压力做出反应并使超薄膜变形。这 ... >>

Petgugu全球猫砂 15.04.2024

照顾宠物通常是一项挑战,尤其是在保持房屋清洁方面。 Petgugu Global 初创公司推出了一种有趣的新解决方案,这将使猫主人的生活变得更轻松,并帮助他们保持家中干净整洁。初创公司 Petgugu Global 推出了一款独特的猫厕所,可以自动冲掉粪便,让你的家保持干净清新。这款创新设备配备了各种智能传感器,可以监控宠物的厕所活动并在使用后激活自动清洁。该设备连接到下水道系统,确保有效清除废物,无需业主干预。此外,该厕所还具有较大的可冲水存储容量,非常适合多猫家庭。 Petgugu 猫砂碗专为与水溶性猫砂一起使用而设计,并提供一系列附加功能 ... >>

体贴男人的魅力 14.04.2024

长期以来,女性更喜欢“坏男孩”的刻板印象一直很普遍。然而,英国莫纳什大学科学家最近进行的研究为这个问题提供了新的视角。他们研究了女性如何回应男性的情感责任和帮助他人的意愿。这项研究的结果可能会改变我们对男性对女性吸引力的理解。莫纳什大学科学家进行的一项研究得出了有关男性对女性吸引力的新发现。在实验中,女性看到了男性的照片,并附有关于他们在各种情况下的行为的简短故事,包括他们对遇到无家可归者的反应。一些人无视这名无家可归的人,而另一些人则帮助他,比如给他买食物。一项研究发现,与表现出同理心和善良的男性相比,表现出同理心和善良的男性对女性更具吸引力。 ... >>

来自档案馆的随机新闻

人体汗液是能量的来源 27.08.2017

加利福尼亚大学圣地亚哥分校的一个生物工程师团队开发了可扩展的燃料电池,可以从人体汗液中提取能量,并可以产生足够的能量来为 LED 灯泡和蓝牙无线电等设备供电。

开发的生物燃料电池每表面积产生的功率是任何现有可穿戴生物燃料设备的 10 倍。 新设备可用于为许多便携式设备供电。

以生物燃料为动力的表皮装置是现代技术的一项突破。 科学家们已经更接近于创造出更具弹性和更强大的设备。

专家们通过结合化学生产中的先进技术、创造新材料和电子接口来实现他们的目标。 弹性电子平台是使用基于阴极和阳极阵列的 XNUMXD 碳纳米管的光刻和丝网印刷构建的。

生物燃料弹性装置,更像是贴片,配备了一种酶,可以氧化人体汗液中的乳酸以产生电流。 因此,该设备将汗水转化为能量来源。

其他有趣的新闻:

▪ 眼镜会自己清洁

▪ 无人机警告海啸

▪ 松下Lumix S5

▪ 水块 Phanteks Glacier Radeon VII

▪ 三星SDI推出38cm厚CRT电视

科技、新电子资讯

 

免费技术图书馆的有趣材料:

▪ 网站数据传输部分。 文章精选

▪ 文章人类健康与社会。 安全生活的基础

▪ 文章 为什么我们需要激素? 详细解答

▪ 文章 香欧芹。 传说、栽培、使用方法

▪ 文章 AC-35 (S-90) 扬声器系统的改进。 无线电电子电气工程百科全书

▪ 文章生物质:未来的清洁能源。 无线电电子电气工程百科全书

留下您对本文的评论:

Имя:


电子邮件(可选):


点评:





本页所有语言

主页 | 图书馆 | 用品 | 网站地图 | 网站评论

www.diagram.com.ua

www.diagram.com.ua
2000-2024