如何实现两个数据库的同步

如何实现两个数据库的同步,第1张

sql同步使用dblink同步数据。
具体参考实例:
1、在win下创建linux的DBLINK
a查看linux下的tnsnamesora文件
[oracle@myrac1 admin]$ cat tnsnamesora
# tnsnamesora Network Configuration File: /s01/app/oracle/product/1120/dbhome_1/network/admin/tnsnamesora
# Generated by Oracle configuration tools
HJJ =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myrac1oraclecom)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = hjj)
)
)
b创建dblink
SQL> create database link win_lin_link connect to hjj identified by xxxx
2 using '(DESCRIPTION =
3 (ADDRESS = (PROTOCOL = TCP)(HOST = 1921681171)(PORT = 1521))
4 (CONNECT_DATA =
5 (SERVER = DEDICATED)
6 (SERVICE_NAME = hjj)
7 )
8 )'
9 /
Database link created
2在win下创建trigger
SQL> create or replace trigger trig_win_emp
2 after insert on emp
3 for each row
4 begin
5 insert into emp@win_lin_link values(:newempno,:newempname,:newempsalary);
6 end;
7 /
Trigger created
3测试
4结果
win下插入数据
SQL> insert into emp values('E001','LYN',2300);
1 row created
SQL>COMMIT;
Commit complete
SQL> select from emp;
EMPNO EMPNAME EMPSALARY
---------------------------------------- ---------------------------------------- ----------
E001 LYN 2300
SQL> select from emp@win_lin_link;
EMPNO EMPNAME EMPSALARY
---------------------------------------- ---------------------------------------- ----------
E001 LYN 2300
linux下查看数据
SQL> select from emp;
EMPNO EMPNAME EMPSALARY
-------------------- -------------------- ----------
E001 LYN 2300

1信号线及信号

CAN总线以CAN一High和CAN一历w两条信号线 (双绞线)工作,舒适CAN总线 两条线的电平分别约为OV和5V(隐性时)。

LIN总线只以一条相当于CAN一忱如的信号线工作,隐性时电平接近电瓶电压,并随 之浮动;显性时电平接近地电平。使用0·35mmz导线,颜色为紫底白线。

2·组件

CAN总线工作时,电子单元中除了需要相对复杂的收发器外,通常还需要用专门的协 议控制器。LIN总线单元中的收发器较简单,而且由于协议简单,通常不需要专门的协议 控制器。

3·传输速率

CAN总线的位速率较高,在汽车中使用时通常为5OOkb/s,最低的也达到1OOkb/s。 LIN总线的最高位速率为2Okb/s,通常使用1920Ob/s或9600b/s的速率。

4·系统结构

CAN总线为多主机系统,即接人总线的任一电子单元都可通过总线仲裁来获取总线控 制权,并向总线系统中发送信息,单元在发出完整的ID时即为主机。CAN总线使用11位 ID(甚至更多),在一个子系统中可有较多的单元。

LIN总线为单主机多从机系统,每一子系统中有且只有一个主机,所有的信息传送都 由主机控制,从机必须等待主机发出了与它对应的ID后才能发送信息。LIN总线使用6位 ID,在一个子系统中只能有较少的单元。

5·可靠性

CAN总线采用可靠性很高的CRC校验。

LIN总线采用可靠性相对较差的带进位的和校验。

6·成本

CAN总线能用于各种信息传送的场合,但成本较高,工艺性相对差些。

LIN总线只能用于对速率及可靠性要求不是很高的场合,如舒适系统或某些子系统等, 优点是成本低,工艺性好。

20世纪80年代后, MCU和MPU开始在汽车中被广泛使用,汽车电子化进程开始逐年加快。近几年,智能化和网联化在汽车行业兴起,汽车电子化程度更上一层楼。据统计,当前汽车的创新70%来源于汽车电子产品,电子产品成本占整车比例已经从上世纪70年代的4%,成长到现在的30%左右。未来仍将进一步提升,预期到2030年,该比例将可达到50%。在电子零部件越来越多,信息传输量越来越大的需求促动下,汽车网络化势头已经不可挡。因此,传统的电气网络已无法适应现代汽车电子系统的发展,新型汽车总线技术应运而生。
图|汽车总线
目前汽车上普遍采用的汽车总线有局部互联协议LIN和控制器局域网CAN,正在发展中的汽车总线技术还有高速容错网络协议FlexRay、用于汽车多媒体和导航的MOST以及与计算机网络兼容的蓝牙、无线局域网等无线网络技术。
在这里,与非网编辑主要讲解一下传统三大总线CAN、LIN、FlexRay和汽车总线“新贵”以太网,看一下每一个汽车总线的特点、优势和未来发展趋势。
CAN总线

CAN-BUS即CAN总线技术,全称为“控制器局域网总线技术(Controller Area Network-BUS)”。Can-Bus总线技术最早被用于飞机、坦克等武器电子系统的通讯联络上。将这种技术用于民用汽车最早起源于欧洲,在汽车上这种总线网络用于车上各种传感器数据的传递。
图|CAN总线
汽车上面布满了各种控制单元,越是高级的汽车,其控制单元越多,控制系统越复杂。每个控制单元都可看做一台独立的电脑,它可以接受信息,同时能对各种信息进行处理、分析,然后发出一个指令。比如发动机控制单元会接受来自进气压力传感器、发动机温度传感器、油门踏板位置传感器、发动机转速传感器等等的信息,在经过分析和处理后会发送相应的指令来控制喷油嘴的喷油量、点火提前角等等,其它控制单元的工作原理也都类似。在这里可以给大家做一个比喻,车上的各种控制单元就好比一家公司各个部门的经理,每个部门的经理接受来自自己部门员工的工作汇报,经过分析作出决策,并命令该部门的员工去执行。
部分汽车的控制单元之间的所有信息都通过两根数据线进行交换,这种数据线也叫CAN数据总线。通过该种方式,所有的信息,不管信息容量的大小,都可以通过这两条数据线进行传递,这种方式充分的提高了整个系统的运行效率。
图|CAN-BUS
总线系统之所以称作为CAN-BUS,其实也是因为它的工作原理与运行中的公共汽车很类似。每个站点相当于一个控制单元,而行驶路线则是CAN数据总线,CAN数据总线上传递的是数据,而公共汽车上承载的是乘客。某个控制单元接收到负责向它发送数据的传感器的信息后,经过分析处理会采取相应措施,并将此信息发送到总线系统上。这样此信息会在总线系统上进行传递,每个与总线系统连接的控制单元都会接收到此信息,如果此信息对自己有用则会存储下来,如果对其无用,则会进行忽略。
目前汽车上的CAN数据总线连接方式主要有两种,一种是用于驱动系统的高速CAN总线,速率可达到500kb/s,另一种是用于车身系统的低速CAN总线,速率为100kb/s。当然对于中高级轿车还有一些如娱乐系统或智能通讯系统的总线,它们的传输速率更高,可以超过1Mb/s。

接下来,我们看一下CAN总线有哪些优势:
·比传统的布线方式的数据传输速度更高。

·比传统布线方式要节省线束,降低了车身重量,同时优化了车身的布线方式。

·以CAN总线方式连接的控制单元中有一个发生故障,其它控制单元仍可发送各自的数据,互不影响。

·CAN数据总线为双线制,如果有一条发生故障,CAN系统会转为单线运行模式,提高了整车的稳定性。

·CAN系统的双线在实际中是像“麻花”一样缠绕在一起的,这样可以有效的防止电磁波的干扰和向外辐射。

·基于CAN总线系统可以实现更丰富的车身功能。
CAN总线是当前汽车总线应用最广的一种,但是由于自身安全性等原因,人们已经开始为CAN总线寻求合格的替代者, FlexRay、以太网是这个过程中呼声较高的。
LIN总线

LIN总线是针对汽车分布式电子系统而定义的一种低成本的串行通讯网络,是对控制器区域网络(CAN)等其它汽车多路网络的一种补充,适用于对网络的带宽、性能或容错功能没有过高要求的应用。LIN总线是基于SCI(UART)数据格式,采用单主控制器/多从设备的模式,是UART中的一种特殊情况。
图|车载网络示意图
LIN总线是面向汽车低端分布式应用的低成本,低速串行通信总线。它的目标是为现有汽车网络提供辅助功能,在不需要CAN总线的带宽和多功能的场合使用,降低成本。
LIN联盟成立于1999年,并发布了LIN010版本。最初的成员有奥迪、宝马、克莱斯勒、摩托罗拉、博世、大众和沃尔沃等。
LIN总线相对于CAN的成本节省主要是由于采用单线传输、硅片中硬件或软件的低实现成本和无需在从属节点中使用石英或陶瓷谐振器。这些优点是以较低的带宽和受局限的单宿主总线访问方法为代价的。
图|汽车总线示意图
LIN总线上的所有通讯都由主机节点中的主机任务发起,主机任务根据进度表来确定当前的通讯内容,发送相应的帧头,并为报文帧分配帧通道。总线上的从机节点接收帧头之后,通过解读标识符来确定自己是否应该对当前通讯做出响应、做出何种响应。基于这种报文滤波方式,LIN可实现多种数据传输模式,且一个报文帧可以同时被多个节点接收利用。
LIN总线是CAN总线的副手。未来,或许将随着CAN总线一起退出历史的舞台。

FlexRay

FlexRay是一种用于汽车的高速、可确定性的,具备故障容错能力的总线技术,它将事件触发和时间触发两种方式相结合,具有高效的网络利用率和系统灵活性特点,可以作为新一代汽车内部网络的主干网络。FlexRay是汽车工业的事实标准(facto standard)。
图|FlexRay
Flexray的拓扑结构多样,既可以像CAN总线一样使用线型结构,也可以使用星型结构。中心节点负责转发信息。当除中心节点外的某个节点损坏或线路故障时,中心节点可以断开与该节点的通信。但当中心节点损坏时,整个总线便无法工作。可以将多个星型总线的中心节点连接起来。
Flexray和CAN总线最本质的区别是总线分配的方式不同。CAN总线是采用CSMA/CA机制。各节点会一直监听总线,发现总线空闲时便开始发送数据。Flexray用的是TDMA(Time Division Multiple Access) 和FTDMA(Flexible Time Division Multiple Access)两种方法。Flexray将一个通信周期分为静态部分、动态部分、网络空闲时间。静态部分使用TDMA方法,每个节点会均匀分配时间片,每个节点只有在属于自己的时间片里面才能发送消息,即使某个节点当前无消息可发,该时间片依然会保留(也就造成了一定的总线资源浪费)。在动态部分使用FTDMA方法,会轮流问询每个节点有没有消息要发,有就发,没有就跳过。静态部分用于发送需要经常性发送的重要性高的数据,动态部分用于发送使用频率不确定、相对不重要的数据。
图|FlexRay
Flexray相比较于CAN总线要复杂许多,安全性相对较高。但是,Flexray总线也有其弊端,就是造价成本过高,除了德系车厂在量产车上使用过,其他国家极少见。随着汽车电子化程度的增加,对总线带宽的要求也越来越高。用Flexray来取代原来普遍使用的CAN总线是不现实的,因为成本实在太高。
以太网

新的汽车功能,如自动泊车系统、车道偏离检测系统、盲点检测和高级信息娱乐系统等引发了对新的数据总线需求。显然,未来我们需要的是更加开放、高速,且易于与其他电子系统或者设备集成的车载网络,同时有助于减少功耗,线束重量和部署成本。
图|多功能汽车系统示意图
传统车载网络支持的通信协议较为单一,而车载以太网可以同时支持AVB、TCP/IP、DOIP、SONIP等多种协议或应用形式。其中,Ethernet AVB 是对传统以太网功能的扩展,通过增加精确时钟同步、带宽预留等协议增强传统以太网音视频传输的实时性,是极具发展潜力的网络音视频实时传输技术。SOME/IP(Scalable Service-Oriented MiddlewarE on IP)则规定了车载摄像头应用的视频通信接口要求,可应用于车载摄像头领域,并通过API实现驾驶辅助摄像头的模式控制。
作为AVB协议的扩展,车载时间敏感网络(TSN,  Time-Sensitive Networking)则引入时间触发式以太网的相关技术,能高效的实现汽车控制类信息的传输。此外,1Gbit 速率通信标准的车载以太网同时还支持 POE(Power Over Ethernet)功能和高效节能以太网(EEE, Energy-Efficient Ethernet)功能,POE 功能可在双绞线传输数据的同时为连接的终端设备供电,省去了终端外接电源线,降低了供电的复杂度。
图|车用以太网
当前,以太网和CAN的连接通过以太网网关来实现。以太网目前还不是用来取代CAN的,主要还是应用在非CAN的部分。车载以太网不仅具备了适应ADAS、影音娱乐、汽车网联化等所需要的带宽,而且还具备了支持未来更高性能的潜力(如自动驾驶时代所需要的更大数据传输)。它将成为实现多层面高速通信的基石,相对于20世纪90年代的控制器局域网(CAN)革命,它的规模将更大,意义将更深远。专家预测,到2020年,汽车中部署的以太网端口将达5亿个。
研究人员表示:“CAN通过变频变换来控制,这比以太网好,因此在一段时间内都不会被以太网取代。但是到2021年以后,随着ESN这个新以太网协议推出,估计汽车会陆续去掉CAN总线,而仅有以太网通信。”
为何现在选择车载以太网?

ADAS 和自动驾驶汽车需要通过高带宽和低延迟的网络来连接所有传感器、摄像头、诊断工具、通信系统以及中央人工智能。这些技术会产生、发送、接收、存储和处理海量数据。

现在的大部分汽车通过 CAN 或 LIN 联网,但随着数据传输速度和数据量的增加,这些总线因为带宽较低、体积较大而不太适合用于背板。在现代化互联汽车中,CAN/LIN总线仍然会有一席之地,但它不会成为通信系统的骨干。

如果您看一看当今的汽车设计以及使用车载以太网的地方,再看看一两年后的汽车设计,就会发现采用车载以太网的总线数量越来越多。

图1:1TPCE =1个双绞线 100 Mb/s 以太网。RTPGE =减少的双绞线千兆位以太网

下表对车载以太网与之前的 CAN 和 LIN 技术进行了比较。

本文中关于LIN报文帧结构的5个部分,及部分文字参考公众号“汽车ECU设计”的相关内容,只是对其部分描述进行了简化和补充。

LIN的全称为LocalInterconnect Network。LIN主要功能是为CAN总线网络提供辅助功能,在传统车上应用最多的场合就是自动车窗、车灯、后视镜这些节点。LIN的一大优点是成本低,而且走线也更简单,只是一根线就好了,而不用像CAN总线一样需要双绞线。但其最大传输速率为20Kbps。

在说LIN总线之前,先把物理层的东西搬出来,下图就是目前应用最为广泛的LIN总线的应用电路,是从TJA1021的规格书中截图出来的。

作为主节点的LIN收发器电路是有一个1K上拉到Vbat的电阻,而如何改变LIN总线上的电位,也就是通过LIN收发器内部的MOSFET的拉低来实现的。因此,LIN总线实际上是一个12V电平的方波信号,之前我用示波器录过一段LIN总线上的波形,可惜找不到了,只能抄网络上别人的图来写了。

LIN总线的特点

1采用单主多从的组网方式,无CAN总线那样的仲裁机制,最多可连接16个节点(1主15从)。2对硬件要求简单,仅需UART/SCI接口,辅以简单驱动程序便可实现 LIN 协议。故几乎所有的MCU均支持LIN。3不需要单独的晶振,便能完成主、从节点的同步,硬件成本大幅降低。4仅使用一根信号线便可完成信息的传输,即所谓的单总线设备。5传输速率最高可达20Kbps,符合A类网络标准,满足车身控制需要。6LIN 网络中新节点的加入,对网络中其他原有节点的软硬件设计不会造成影

LIN总线特点
低成本:基于通用UART 接口几乎所有微控制器都具备LIN 必需的硬件;
极少的信号线即可实现国际标准ISO9141 规定;
传输速率最高可达20Kbit/s;
单主控器/多从设备模式无需仲裁机制;
从节点不需晶振或陶瓷震荡器就能实现自同步,节省了从设备的硬件成本;
保证信号传输的延迟时间;
不需要改变LIN 从节点的硬件和软件就可以在网络上增加节点;
通常一个LIN 网络上节点数目小于12 个共有64 个标志符;
LIN 的通讯规则
一个LIN 网络由一个主节点一个或多个从节点组成,所有节点都有一个从通讯任务。
该通讯任务分为发送任务和接收任务,主节点还有一个主发送任务。
一个LIN 网络上的通讯总是由主发送任务所发起的。主控制器发送一个起始报文,该起
始报文由同步断点和同步字节消息标志符所组成。相应的,在接受并且滤除消息标志符后,
一个从任务被激活并且开始本消息的应答传输。该应答由2/4/8 个数据字节和一个校验码所
组成。起始报文和应答部分构成一个完整的报文帧。
怎样正确组成LIN 报文帧
由报文标志符指示该报文的组成。这种通讯规则可以用多种方式来交换数据:由主节点
到一个或多个从节点;由一个从节点到主节点或其他的从节点,通讯信号可以在从节点之间
传播而不经过主节点或者主节点广播消息到网络中的所有节点。报文帧的时序由主控制
器控制


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13206686.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-20
下一篇 2023-06-20

发表评论

登录后才能评论

评论列表(0条)

保存