请问ZXJ10程控交换机中用户模拟板中编解码芯片PEB2466或者PEB2446的工作原理是什么

请问ZXJ10程控交换机中用户模拟板中编解码芯片PEB2466或者PEB2446的工作原理是什么,第1张

纯电动汽车冷却系统分为2个独立的系统:PEB/驱动电机冷却系统和电池冷却系统。

电机冷却系统处于较低温度时,冷却液泵不工作。温度上升后,冷却液泵工作。冷却液泵的工作温度不能超过7 5℃,最合适的工作温度应该低于65℃。PEB/电机冷却液泵安装在前右纵梁上

BMS用于控制电池冷却系统电动水泵,在电池温度上升到32 5℃时开启,在温度低于27 5℃时关闭。BMS发出要求电池冷却器膨胀阀关闭和水泵运转的信号。20℃时电池的冷却液泵电阻值为1M左右。电池冷却液泵安装在车身底盘上膨胀水箱盖的额定压力为140kPa

元件作用:控制电子风扇运转,不提供信号给仪表。PEB计算冷却液温度并将它与PEB冷却温度传感器信号进行比较,判断是否需要使用PEB冷却液温度传感器控制冷却风扇运转。电池冷却系统温度传感器在电池组内部,从外面看不到。

电池冷却器(Chiller)安装在车身底盘中部,位置见图5。其组成部件为热交换器、带电磁阀的膨胀阀(TXV)、管路接口和支架。电池冷却器主要用于完成电池冷却液和制冷系统的制冷剂的热交换,将电池冷却液中的热量转移到制冷剂中。

电池冷却器一膨胀阀控制/冷却液温度控制如下所述。

ETC收到BMS的膨胀阀电磁阀开启的信号要求,首先打开电池冷却器膨胀阀的电磁阀,并给EAC发启动信号。电池组最适宜温度值为20~30℃。当电池的冷却液温度在30℃以上时,ETC限制乘客舱制冷量;当冷却液温度在48℃以上时,ETC关闭乘客舱制冷功能,但除霜模式除外。ETC只控制冷却液温度。BMS控制冷却液与BMS电池内部的热量交换(控制冷却泵)。快速充电冷却必要条件:快速充电时,会被网关模块唤醒,此时电池冷却系统进人正常工作状态。

冷却风扇受VCU控制。冷却风扇工作时,VCU控制PWM模块使冷却风扇以在20%~90%的占空比范围内的8个挡位的速度工作。冷却风扇开启条件取决于EAC和PEB冷却液温度这两个重要因素。当EAC开启或PEB冷却液温度高于52℃时,冷却风扇即开始工作。冷却风扇停止工作条件:PEB冷却液温度低于65℃(实测47℃),并且EAC关闭。点火开关关闭、EAC关闭时,若PEB冷却液温度高于6 5 ℃,则冷却风扇继续工作:环境温度低于10℃时工作30s;环境温度高于10℃时工作60s。

楼上们说的都是最后的方法了。

你先试试我的这个几办法:

1、关于d出或重新启动,很有可能是驱动不兼容。

你应该在“驱动之家”需要合适你主板的驱动。或直接去官方网站寻找。

你的主扳的官方网站:>

很高兴为您解答:

软件需要更新,(腾讯电脑管家,软件升级,下载,覆盖安装,winrar可以不升)

系统有新的漏洞等待安装,(打开腾讯电脑管家一漏洞修复一扫描修复)

显卡或内存cpu,或风扇的接触不良和松动或有灰尘覆盖,(拔下橡皮擦擦)

内存cpu过热,散热性不好!(开机时间不要太长,关机散热)

电脑存在恶评插件! (扫描出来,立即清理)或磁盘碎片过多,(使用腾讯电脑管家),清理碎片!

祝楼主工作顺利、生活愉快!!

一. 什么是动态连接库

动态连接库使用标准的PE文件格式,在动态连接库里可以定义资源并使用各种资源,并且可以导入并使用其它动态连接库里定义的函数(动态连接库嵌套)。它提供函数给其它程序在运行的时候调用。通常动态连接库文件的扩展名是dll,但是系统中某些exe文件,字体文件fon,一些驱动程序drv,各种控件ocx和输入法模块ime等都是动态连接库。

二. 动态连接库框架

;--------------------------------------------------------------------------------------

;DLLSkeletonasm

;--------------------------------------------------------------------------------------

386

modelflat,stdcall

optioncasemap:none

include\masm32\include\windowsinc

include\masm32\include\user32inc

include\masm32\include\kernel32inc

includelib\masm32\lib\user32lib

includelib\masm32\lib\kernel32lib

data

code

DllEntryprochInstDLL:HINSTANCE,reasonWORD,reserved1WORD

moveax,TRUE

ret

DllEntryEndp

;---------------------------------------------------------------------------------------------------

;下面是一个空函数,您可以象下面一样插入您的函数。

;----------------------------------------------------------------------------------------------------

TestFunctionproc

ret

TestFunctionendp

EndDllEntry

;-------------------------------------------------------------------------------------

;DLLSkeletondef

;-------------------------------------------------------------------------------------

LIBRARYDLLSkeleton

EXPORTSTestFunction

1入口点和初始化代码

DllEntryprochInstDLL:HINSTANCE,reasonWORD,reserved1WORD

moveax,TRUE

ret

DllEntryEndp

每一个动态连接库必须有一个入口函数,以方便 *** 作系统使用。(注意入口函数对调用的应用程序是透明的)函数的名称是什么没有特定的要求,但是格式是有规定的。看看什么情况下要用到入口函数:

■当动态链接库被加载时

■当动态链接库卸载时

■同一进程的线程生成时

■同一进程的线程退出时

hInstDLL是该动态链接库模块的句柄。它和进程的实例句柄不一样。如果您以后要用,可以保存它,因为以后再要获得它不容易。

根据不同的时机,reason传入的值可能是下面的四个值中的一个:

DLL_PROCESS_ATTACH动态链接库第一次插入进程的地址空间时。当传入的参数是该值时,可以做一些初始化的工作。

DLL_PROCESS_DETACH动态链接库从进程的地址空间卸出时。可以在此做一些清理的工作。譬如:释放内存等。

DLL_THREAD_ATTACH新线程生成。

DLL_THREAD_DETACH线程销毁。

如果想要库中的代码继续执行,返回TRUE,否则返回FALSE,那样动态链接库就不会加载了。譬如:想分配一块内存,如果不成功的话就退出,这时就可以返回FALSE。那样动态链接库就不会加载了。可以加入的函数,它们的位置并不重要,把它们放在入口点函数的前面或后面都可以。只是如果您想要它们能被其它的程序调用的话,就必须把它们的名字放到模块定义文件(def)中去。

动态链接库在它们自己的编译过程就需要,而不只是提供给其它要引用它的程序参考。它们如下:

LIBRARYDLLSkeleton

EXPORTSTestFunction

第一行是必须的。LIBRARY定义了DLL的模块名称。它必须和动态链接库的名称相同。

EXPORTS关键字告诉链接器该DLL的引出函数,也就是其它程序可以调用的函数。举个例子:其它的程序想要调用函数TestFunction,我们就把它放到EXPORTS中。

2链接选项

链接器的选项中必须放入开关项:/DLL和/DEF,就像下面这样:

link/DLL/SUBSYSTEM:WINDOWS/DEFLLSkeletondef/LIBPATH:c:\masm32\libDLLSkeletonobj

编译器的开关选项是一样的,即:/c/coff/Cp。在链接好后,链接器会生成lib和dll文件。前者是引入库,当其它的程序要调用自己的动态链接库中的函数时就需要该引入库,以便把必要的信息加入到其可执行文件中去。

三. 动态连接库的调用方法

1在include文件定义的时候包含动态连接库的rc和lib库文件,在程序中直接调用动态连接库里的函数

2动态加载所需的DLL。

那我们该如何解决这个问题呢?

在Windows中提供了两个函数LoadLibrary和GetProcAddress,LoadLibrary函数用来动态加载DLL,而GetProcAddress函数用来从某个DLL中获取指定函数的地址。这两个函数的用法如下:

HINSTANCELoadLibrary(

LPCTSTRlpLibFileName//addressoffilenameofexecutablemodule

);

FARPROCGetProcAddress(

HMODULEhModule,//handletoDLLmodule

LPCSTRlpProcName//nameoffunction

);

LoadLibarary函数用来加载一个DLL模块,如果成功,则返回该模块的句柄。这个句柄可以用于GetProcAddress函数。而GetProcAddress函数则从DLL模块中查找特定函数名的函数的地址。例如下面两句代码就是从kernel32dll中取得CreateProcess函数的地址:

HMODULE hModule=LoadLibrary(“kernel32dll”);

FARPROC fn=GetProcAddress(hModule,”CreatePrcess”)

但现在又出现了一个问题,函数LoadLibrary和GetProcAddress的地址又从哪得到呢?这就像一个现有鸡还是先有蛋的问题一样。

在WinNT中,进程的环境块(PEB)地址总是在0x7FFDF000处。而在PEB中由该进程加载的每个DLL的地址,当然包括Kernel32dll的地址。找到Kernel32dll的地址之后,就可以通过Kernel32dll的PE文件头找到其导出函数表,再查找该导出函数表就可以找到函数“GetProcAddress”的地址,之后就可以通过GetProcAddress函数得到“LoadLibrary”的地址了。

完成这个功能的Win32汇编代码给出。

;

;下面这部分汇编需要对PEB结构非常的了解

;

mov eax,7FFDF00Ch

;7FFDF000的位置是PEB的位置,其偏移0x0C(即7FFDF00Ch)是PEB_LDR_DATA结构

mov eax,dwordptr[eax]

mov esi,dwordptr[eax+1Ch]

;在PEB_LDR_DATA+0x1c地方就是一些动态连接库的地址了,如第一个指向ntdlldll

;第二个就是我们需要的kernel32dll的地址,第三个是msvcrtdll,一个指针链表

lodsd

mov eax,dwordptr[eax+8]

;此时得到了Kernel32dll的位置,eax等于77E60000

mov [ebx+hModule],eax

;此时hModule等于kernel32dll的位置,即77E60000

;

;从PE文件头的数据目录获取导出表地址

;

mov esi,[ebx+hModule]

add esi,[esi+3ch]

assume esitrIMAGE_NT_HEADERS

mov esi,[esi]OptionalHeaderDataDirectoryVirtualAddress

add esi,[ebx+hModule]

assume esitrIMAGE_EXPORT_DIRECTORY

;esi指向kernel。dll的导出表

;

;查找符合名称的导出函数名

;

mov eax,[esi]AddressOfNames

add eax,[ebx+hModule]

xor edx,edx

repeat

push esi

mov edi,[eax]

add edi,[ebx+hModule]

lea esi,[ebx+offset_szGetProcAddress]

mov ecx,14

repz cmpsb

if ZERO

pop esi

jmp @F

endif

pop esi

add eax,4

inc edx

until edx>= [esi]NumberOfNames

jmp return

@@:

;

;API名称索引-->序号索引-->地址索引

;

sub eax,[esi]AddressOfNames

sub eax,[ebx+hModule]

shr eax,1

add eax,[esi]AddressOfNameOrdinals

add eax,[ebx+hModule]

movzx edx,wordptr[eax]

shl edx,2

add edx,[esi]AddressOfFunctions

add edx,[ebx+hModule]

;

;从地址表得到导出函数地址

;

mov eax,[edx]

add eax,[ebx+hModule]

;取得GetProcAddress函数的地址

mov [ebx+_lpGetProcAddress],eax

;取得LoadLibrary函数的地址

lea esi,[ebx+offset_szLoadLibrary]

_invoke [ebx+_lpGetProcAddress],[ebx+hModule],esi

mov [ebx+_lpLoadLibrary],eax

assume esi:nothing

以上就是关于请问ZXJ10程控交换机中用户模拟板中编解码芯片PEB2466或者PEB2446的工作原理是什么全部的内容,包括:请问ZXJ10程控交换机中用户模拟板中编解码芯片PEB2466或者PEB2446的工作原理是什么、求组成Windows内核的前十条汇编指令、荣威E50电池冷却控制单元ECT-ECU 是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/web/9444226.html

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

发表评论

登录后才能评论

评论列表(0条)

保存