初洪超(安徽江淮汽車技術(shù)中心乘用車研究院電氣系統(tǒng)設(shè)計(jì)部,安徽 合肥 230009)
?
網(wǎng)絡(luò)管理在汽車CAN系統(tǒng)的應(yīng)用
初洪超
(安徽江淮汽車技術(shù)中心乘用車研究院電氣系統(tǒng)設(shè)計(jì)部,安徽 合肥 230009)
摘要:簡(jiǎn)要闡述某汽車CAN網(wǎng)絡(luò)系統(tǒng)中的OSEK網(wǎng)絡(luò)管理方法應(yīng)用。介紹了OSEK網(wǎng)絡(luò)管理的策略方法,并結(jié)合實(shí)例介紹了OSEK的應(yīng)用。
關(guān)鍵詞:CAN總線;網(wǎng)絡(luò)管理;OSEK
10.16638/j.cnki.1671-7988.2016.05.033
CLC NO.: U463.67.4Document Code: AArticle ID: 1671-1998(2016)05-114-05
隨著時(shí)代的發(fā)展,汽車已不再只是人們的代步工具,更多功能的加入,使得汽車能夠完成更多人性化、智能化的工作。但是,更多智能化功能的加入,意味著汽車ECU數(shù)量成倍的上升。不同生產(chǎn)廠商制造的ECU在同一輛汽車中協(xié)同工作,互相傳輸著數(shù)據(jù),讓整個(gè)汽車控制體系自成一統(tǒng),構(gòu)成了汽車控制器局域網(wǎng)。
雖然ECU數(shù)量的上升讓功能強(qiáng)大,但伴隨著的功耗也會(huì)增多。尤其在不啟動(dòng)發(fā)動(dòng)機(jī),而使用汽車的某些功能時(shí),這樣的困擾便更加明顯。因此,為了使汽車網(wǎng)絡(luò)工作更加有效,盡最大可能做到高效低耗,就引入了網(wǎng)絡(luò)管理的概念。根據(jù)這個(gè)概念,在某些不需要特定ECU工作的狀況下,如果能將部分ECU處于低功耗的待機(jī)狀態(tài),而一旦需要其工作,又能立即將其喚醒,成為解決這一狀況的策略構(gòu)想,即網(wǎng)絡(luò)管理策略。網(wǎng)絡(luò)管理有很多種,目前應(yīng)用較廣泛的是基于OSEK的直接網(wǎng)絡(luò)管理策略。
某汽車應(yīng)用CAN網(wǎng)絡(luò),在這個(gè)車型上使用的就是OSEK直接網(wǎng)絡(luò)管理。本文介紹了網(wǎng)絡(luò)管理的相關(guān)策略方法和某汽車車型對(duì)網(wǎng)絡(luò)管理的應(yīng)用。
1.1網(wǎng)絡(luò)管理功能
1)網(wǎng)絡(luò)管理應(yīng)有如下的基本功能:
網(wǎng)絡(luò)通信的開始與停止,網(wǎng)絡(luò)管理控制ECU初始化,幀模式和所有開始/結(jié)束時(shí)間。
喚醒/掛起網(wǎng)絡(luò)通訊,網(wǎng)絡(luò)上所有的節(jié)點(diǎn)要能夠同時(shí)被喚醒或者掛起。
處理通訊錯(cuò)誤,例如,Bus off 的檢測(cè)及恢復(fù)。
確認(rèn)網(wǎng)絡(luò)配置,在網(wǎng)絡(luò)初始化階段,建立邏輯令牌環(huán)。
檢測(cè)網(wǎng)絡(luò)配置,檢測(cè)到新的ECU后,應(yīng)能夠建立新的令牌環(huán)。
通過(guò)配置檢查實(shí)現(xiàn)節(jié)點(diǎn)監(jiān)測(cè),每個(gè)節(jié)點(diǎn)通過(guò)不同方法進(jìn)行監(jiān)控,如收發(fā)信號(hào),監(jiān)測(cè)。
數(shù)據(jù)轉(zhuǎn)換功能,網(wǎng)絡(luò)管理可以交換數(shù)據(jù),例如,可以讀/寫網(wǎng)絡(luò)或節(jié)點(diǎn)相關(guān)參數(shù)。
2)注意,網(wǎng)絡(luò)管理并不包含以下功能,下述功能一般在具體的控制器功能設(shè)計(jì)規(guī)范中描述:
電源管理,定義控制器的供電方式。
處理器工作模式,定義處理器何時(shí)進(jìn)入睡眠模式或低電壓模式。
CAN收發(fā)器,在節(jié)點(diǎn)初始化過(guò)程中應(yīng)用程序使能CAN收發(fā)器,當(dāng)網(wǎng)絡(luò)睡眠后,設(shè)置CAN收發(fā)器為standby模式。
1.2網(wǎng)絡(luò)管理標(biāo)準(zhǔn)
常見的網(wǎng)絡(luò)管理標(biāo)準(zhǔn)策略有很多,如OSEK、AUTOSAR等。某汽車使用OSEK網(wǎng)絡(luò)管理策略。
OSEK網(wǎng)絡(luò)管理有兩種機(jī)制實(shí)現(xiàn)網(wǎng)絡(luò)監(jiān)測(cè):
OSEK直接網(wǎng)絡(luò)管理:基于令牌環(huán)對(duì)網(wǎng)絡(luò)進(jìn)行控制,通過(guò)休眠、喚醒等方式控制各節(jié)點(diǎn)通訊邏輯。
OSEK間接網(wǎng)絡(luò)管理:通過(guò)監(jiān)測(cè)應(yīng)用報(bào)文對(duì)網(wǎng)絡(luò)進(jìn)行控制,主要服務(wù)于安全。
在某汽車項(xiàng)目中,低速CAN網(wǎng)絡(luò)節(jié)點(diǎn)的網(wǎng)絡(luò)管理策略采用基于OSEK的直接網(wǎng)絡(luò)管理的策略,并沒(méi)有使用其間接管理方法。具體的網(wǎng)絡(luò)管理標(biāo)準(zhǔn)參考OSEK/VDX_NM_2.5.3版本中的具體描述。
1.3直接網(wǎng)絡(luò)管理
OSEK直接網(wǎng)絡(luò)管理的目的是實(shí)施對(duì)當(dāng)前網(wǎng)絡(luò)上所有節(jié)點(diǎn)的狀態(tài)監(jiān)控,并保證所有節(jié)點(diǎn)在同一時(shí)間進(jìn)入休眠狀態(tài)。每個(gè)節(jié)點(diǎn)的狀態(tài)都可以被網(wǎng)絡(luò)上其他的節(jié)點(diǎn)所監(jiān)控,因此被監(jiān)控的節(jié)點(diǎn)將向網(wǎng)絡(luò)上發(fā)送網(wǎng)絡(luò)管理報(bào)文。
直接網(wǎng)絡(luò)管理的令牌環(huán)通訊順序完全獨(dú)立于網(wǎng)絡(luò)架構(gòu),每一個(gè)節(jié)點(diǎn)都有一個(gè)自己指向的繼承節(jié)點(diǎn),令牌環(huán)的第一個(gè)節(jié)點(diǎn)為最后一個(gè)節(jié)點(diǎn)的繼承節(jié)點(diǎn)。每一個(gè)節(jié)點(diǎn)都必須能夠發(fā)送網(wǎng)絡(luò)管理報(bào)文給任何其他節(jié)點(diǎn),同時(shí)也必須能接收到其他節(jié)點(diǎn)發(fā)出的網(wǎng)絡(luò)管理報(bào)文。
OSEK網(wǎng)絡(luò)管理的軟件架構(gòu)于實(shí)際連接的物理架構(gòu)無(wú)關(guān)。
OSEK直接網(wǎng)絡(luò)管理基于令牌環(huán)對(duì)網(wǎng)絡(luò)進(jìn)行控制,需要由令牌環(huán)來(lái)同步整個(gè)網(wǎng)絡(luò)的網(wǎng)絡(luò)管理,除了正常的應(yīng)用消息幀之外,針對(duì)每個(gè)節(jié)點(diǎn)定義了專用的網(wǎng)絡(luò)管理消息幀來(lái)傳輸網(wǎng)絡(luò)信息和控制應(yīng)用幀收發(fā)。
當(dāng)某個(gè)節(jié)點(diǎn)仍需要網(wǎng)絡(luò)功能需要加入到網(wǎng)絡(luò)通訊中時(shí),該節(jié)點(diǎn)發(fā)送“Alive”消息向其它節(jié)點(diǎn)表明它仍然存在。
所有發(fā)送“Alive”的節(jié)點(diǎn)會(huì)建立一個(gè)邏輯環(huán)來(lái)達(dá)到網(wǎng)絡(luò)范圍內(nèi)所有節(jié)點(diǎn)的同步。
當(dāng)某個(gè)節(jié)點(diǎn)不需要使用網(wǎng)絡(luò)功能時(shí),它發(fā)送“Sleep Indication”告知其它節(jié)點(diǎn)。當(dāng)所有節(jié)點(diǎn)都發(fā)送了“Sleep Indication”后,會(huì)發(fā)送“Sleep Acknowledge”信息確認(rèn)所有節(jié)點(diǎn)進(jìn)入休眠模式。
在邏輯環(huán)中定義的通訊序列是獨(dú)立于網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的,每個(gè)節(jié)點(diǎn)都會(huì)被分配一個(gè)后續(xù)節(jié)點(diǎn),邏輯環(huán)中的第一個(gè)節(jié)點(diǎn)是最后一個(gè)節(jié)點(diǎn)的后續(xù)節(jié)點(diǎn)。
網(wǎng)絡(luò)給每個(gè)節(jié)點(diǎn)定義了獨(dú)一無(wú)二的地址,源地址和目的地址都需要在明確的包含在網(wǎng)絡(luò)管理幀中。所有的網(wǎng)絡(luò)管理幀都是廣播發(fā)送的。
關(guān)于OSEK直接網(wǎng)絡(luò)管理方式,圖1給出了某汽車的3個(gè)節(jié)點(diǎn)組成的簡(jiǎn)單示例。
圖1 某汽車直接網(wǎng)絡(luò)管理令牌環(huán)
在某汽車項(xiàng)目的低速網(wǎng)段,BCM、ICM和PEPS都被分配了獨(dú)一無(wú)二的網(wǎng)絡(luò)管理地址,分別是BCM:0x101;ICM:0x102;PEPS:0x106。這些節(jié)點(diǎn)通過(guò)含有特定控制字定義和網(wǎng)絡(luò)管理報(bào)文結(jié)構(gòu)的網(wǎng)絡(luò)管理報(bào)文來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)管理。
1.4網(wǎng)絡(luò)管理報(bào)文數(shù)據(jù)結(jié)構(gòu)
OSEK的每個(gè)網(wǎng)絡(luò)管理報(bào)文(NMPDU)都擁有相同的結(jié)構(gòu),由CAN ID域和CAN Data域組成。以某汽車為例:
CAN Id (11 bit)
0x1- 基址0x100(可配置為其他值,但所有網(wǎng)絡(luò)管理報(bào)文應(yīng)包含同樣的基址)
SA- 源址(0x00-0x7F,屬于節(jié)點(diǎn)自己的標(biāo)志地址)
CAN Data(8 Byte)
DA- 目的地址 (0x00- 0x7F,要發(fā)送報(bào)文至某節(jié)點(diǎn)時(shí),此節(jié)點(diǎn)的標(biāo)志地址)
CF- 控制域, 每一位對(duì)應(yīng)節(jié)點(diǎn)相應(yīng)的狀態(tài)
Data-用戶可選數(shù)據(jù)
* 注釋:完整的地址信息是0x100與源地址或目的地址之和,如1.2中的BCM為0x101,基址是0x100,標(biāo)志地址是0x01。所以,BCM網(wǎng)絡(luò)管理地址就是0x101。
具體NMPDU結(jié)構(gòu)如圖2所示。
圖2 網(wǎng)絡(luò)管理報(bào)文格式
SA及DA的最高位強(qiáng)制為0,所以網(wǎng)絡(luò)管理消息中可用的CAN ID范圍應(yīng)該從0x100到0x17F??蛇x數(shù)據(jù)區(qū)域的長(zhǎng)度通??偸?個(gè)字節(jié),如果未使用則填充0。只有在當(dāng)前節(jié)點(diǎn)掌握令牌期間,應(yīng)用程序可以修改數(shù)據(jù),其它時(shí)間數(shù)據(jù)不允許修改。
CAN data域的第二個(gè)字節(jié)包含了網(wǎng)絡(luò)管理控制域(CF),用于體現(xiàn)ECU的運(yùn)行狀態(tài),(Bit0為字節(jié)的最低位)字節(jié)中各個(gè)位對(duì)應(yīng)的狀態(tài)定義見下圖。
圖3 CF字節(jié)位定義
Alive, Ring 和Limp Home三個(gè)位在同一時(shí)刻只能有一位置位。
當(dāng)Bus Sleep Acknowledge置位時(shí),Bus Sleep Indication需同時(shí)置位,但Bus Sleep Indication可單獨(dú)置位。保留位應(yīng)被填充0。
具體情況及含義詳見圖4。
圖4 CF各個(gè)位置為情況及含義
通過(guò)上述規(guī)定,通常有的組合形式對(duì)應(yīng)的CF字節(jié)控制字如下:
0x01Alive
0x02Ring
0x12Ring+Sleep Ind
0x32Ring+Sleep Ind+Sleep Ack
0x04Limp Home
0x14Limp Home+Sleep Ind
0x11Alive+Sleep Ind
1.5網(wǎng)絡(luò)管理策略
網(wǎng)絡(luò)管理策略規(guī)定了ECU網(wǎng)絡(luò)管理報(bào)文的時(shí)序流程,其目的是建立和維護(hù)ECU之間的聯(lián)系。網(wǎng)絡(luò)管理策略只是提供網(wǎng)絡(luò)的狀態(tài)信息,而不同狀態(tài)的控制方法由應(yīng)用程序負(fù)責(zé)。網(wǎng)絡(luò)中各個(gè)ECU所有狀態(tài)的轉(zhuǎn)換如圖5所示。
圖5 ECU狀態(tài)轉(zhuǎn)換圖
1)關(guān)閉狀態(tài)
處于關(guān)閉狀態(tài)的ECU將失去電源,不能進(jìn)行任何網(wǎng)絡(luò)活動(dòng)。
當(dāng)點(diǎn)火鑰匙位于OFF檔時(shí),+30節(jié)點(diǎn)類型的ECU不受點(diǎn)火鑰匙控制,只有切斷蓄電池供電或電壓低于最小工作電壓,才會(huì)斷電進(jìn)入關(guān)閉狀態(tài)。
2)初始化狀態(tài)
網(wǎng)絡(luò)中的ECU在上電或喚醒后,200ms內(nèi)完成初始化操作,各ECU判斷只有本地ECU在線,并且其后繼ECU也被設(shè)置為本地ECU。
初始化完成后,ECU發(fā)送Alive報(bào)文,通過(guò)Alive報(bào)文將ECU加入到網(wǎng)絡(luò)中。
3)常規(guī)狀態(tài)
在常規(guī)狀態(tài)下,ECU主要在“邏輯環(huán)”中進(jìn)行Ring報(bào)文的傳遞發(fā)送。
4)跛足狀態(tài)
跛足狀態(tài)表明網(wǎng)絡(luò)通信存在故障。
2.1某汽車網(wǎng)絡(luò)管理報(bào)文數(shù)據(jù)結(jié)構(gòu)
下圖為某汽車車型BCM的網(wǎng)絡(luò)管理數(shù)據(jù)報(bào)文,因?yàn)槟称囓囆途W(wǎng)絡(luò)管理不使用數(shù)據(jù)交換功能,所以并沒(méi)有使用CANdata部分。
圖6 某汽車車型BCM_NM報(bào)文數(shù)據(jù)結(jié)構(gòu)
從圖6中看出,首字節(jié)為報(bào)文發(fā)送的目的地址,第二字節(jié)的部分位被定義,與圖3所示一致。
2.2某汽車網(wǎng)絡(luò)管理策略
圖7 網(wǎng)絡(luò)管理狀態(tài)轉(zhuǎn)換圖
某汽車車型的網(wǎng)絡(luò)管理各個(gè)狀態(tài)之間的跳轉(zhuǎn)如圖7所示。
各個(gè)狀態(tài)的轉(zhuǎn)移,只有當(dāng)轉(zhuǎn)移條件滿足的情況下才能切換狀態(tài)。網(wǎng)絡(luò)管理狀態(tài)機(jī)的處理時(shí)間一般為10ms。
轉(zhuǎn)換 1
轉(zhuǎn)換條件:應(yīng)用程序調(diào)用StartNM()。
*注釋:應(yīng)用程序應(yīng)該使能CAN收發(fā)器,初始化CAN控制器,并做好通訊前的準(zhǔn)備工作。如初始化失敗,則此轉(zhuǎn)換不應(yīng)進(jìn)行。
轉(zhuǎn)換 2
轉(zhuǎn)換條件:節(jié)點(diǎn)功能需要網(wǎng)絡(luò)通訊,并調(diào)用GotoMode (Awake)。
轉(zhuǎn)換 3
轉(zhuǎn)換條件:NMReset狀態(tài)中的工作結(jié)束并且接收錯(cuò)誤及發(fā)送錯(cuò)誤計(jì)數(shù)器未達(dá)到限值。
轉(zhuǎn)換 4
轉(zhuǎn)換條件:發(fā)送錯(cuò)誤計(jì)數(shù)器達(dá)到限值。
轉(zhuǎn)換 5
轉(zhuǎn)換條件:節(jié)點(diǎn)功能不再需要網(wǎng)絡(luò)通訊,并調(diào)用GotoMode(BusSleep)。
轉(zhuǎn)換 6
轉(zhuǎn)換條件:接收到一條包含"sleep acknowledge=1"的Ring報(bào)文,或者一條包含“sleep acknowledge=1”的Ring報(bào)文被發(fā)出。
轉(zhuǎn)換 7
轉(zhuǎn)換條件:CAN控制器進(jìn)入Bus Off狀態(tài)。
轉(zhuǎn)換 8
轉(zhuǎn)換條件:接收錯(cuò)誤超過(guò)限值或者發(fā)送錯(cuò)誤超過(guò)限值。
轉(zhuǎn)換 9
轉(zhuǎn)換條件:Ring報(bào)文接收超時(shí)。
轉(zhuǎn)換 10
轉(zhuǎn)換條件:接收到任意一條“Sleep Acknowledge=0”的NM報(bào)文。
轉(zhuǎn)換 11
轉(zhuǎn)換條件:節(jié)點(diǎn)功能需要網(wǎng)絡(luò)通訊,應(yīng)用程序調(diào)用GotoMode(Awake),或者有包含“sleep indication=0”的網(wǎng)絡(luò)管理報(bào)文收到。
轉(zhuǎn)換 12
轉(zhuǎn)換條件:超過(guò)TWaitBusSleep 限值。
轉(zhuǎn)換 13
轉(zhuǎn)換條件:應(yīng)用程序調(diào)用GotoMode(Awake)或StartNM(), 或者被總線通訊喚醒。
轉(zhuǎn)換 14
轉(zhuǎn)換條件:應(yīng)用程序調(diào)用SilentNM()。
轉(zhuǎn)換 15
轉(zhuǎn)換條件:應(yīng)用程序調(diào)用TalkNM()。
轉(zhuǎn)換 16
轉(zhuǎn)換條件:應(yīng)用程序調(diào)用StopNM()。
轉(zhuǎn)換 17
轉(zhuǎn)換條件:節(jié)點(diǎn)功能不再需要網(wǎng)絡(luò)通訊,并調(diào)用GotoMode(BusSleep)。
轉(zhuǎn)換 18
轉(zhuǎn)換條件:應(yīng)用程序需要網(wǎng)絡(luò)通訊,并且調(diào)用GotoMode (Awake)。
轉(zhuǎn)換 19
轉(zhuǎn)換條件:應(yīng)用程序調(diào)用GotoMode(Awake),或者有包含“sleep indication=0”的網(wǎng)絡(luò)管理報(bào)文收到。
轉(zhuǎn)換 20
轉(zhuǎn)換條件:接收到包含“sleep acknowledge=1”的網(wǎng)絡(luò)管理報(bào)文收到,或者在TRingMax時(shí)間內(nèi)沒(méi)有Ring報(bào)文收到。
2.3某汽車網(wǎng)絡(luò)管理應(yīng)用
下面是用CANoe測(cè)出的一些某汽車網(wǎng)絡(luò)管理的應(yīng)用實(shí)例。
1)建立邏輯環(huán)
如圖8所示,步驟1中,BCM、ICM、PEPS三節(jié)點(diǎn)剛出現(xiàn)時(shí)都對(duì)自己發(fā)送0x01的Alive網(wǎng)絡(luò)管理報(bào)文,然后在步驟2中,組成邏輯環(huán),分別向自己的繼承節(jié)點(diǎn)發(fā)送0x02的Ring報(bào)文。
圖8 網(wǎng)絡(luò)節(jié)點(diǎn)建立邏輯環(huán)
2)網(wǎng)絡(luò)休眠
如圖9所示,步驟1中ICM、PEPS均發(fā)出請(qǐng)求睡眠指令,但BCM不滿足睡眠條件,仍發(fā)送0x02網(wǎng)絡(luò)管理Ring報(bào)文,直到步驟2中BCM滿足睡眠條件發(fā)送0x12后,則到達(dá)步驟3,由其繼承節(jié)點(diǎn)發(fā)送0x32,所有節(jié)點(diǎn)進(jìn)入睡眠狀態(tài)。
圖9 網(wǎng)絡(luò)節(jié)點(diǎn)休眠
3)網(wǎng)絡(luò)節(jié)點(diǎn)的增加
如圖10所示,步驟1中三個(gè)節(jié)點(diǎn)BCM出現(xiàn),到步驟2時(shí)突然出現(xiàn)一個(gè)節(jié)點(diǎn)ICM,它出現(xiàn)時(shí)對(duì)自己發(fā)送Alive報(bào)文0x01,其他節(jié)點(diǎn)也分別對(duì)自己發(fā)送0x01,然后到達(dá)步驟3,所有節(jié)點(diǎn)形成新的邏輯環(huán)。
圖10 網(wǎng)絡(luò)節(jié)點(diǎn)增加
4)網(wǎng)絡(luò)節(jié)點(diǎn)的減少
如圖所示,步驟1為BCM、ICM、DVD、PEPS四個(gè)節(jié)點(diǎn)都已經(jīng)形成穩(wěn)定邏輯環(huán)。到步驟2時(shí),DVD丟失,PEPS沒(méi)有接到DVD發(fā)送的Ring報(bào)文,環(huán)的傳遞被打破。間隔一個(gè)時(shí)間T=251ms后,到達(dá)步驟3,BCM、ICM、PEPS都從新向自己發(fā)送Alive報(bào)文。從而最后在步驟4中,建立一個(gè)三個(gè)節(jié)點(diǎn)的新邏輯環(huán)。
圖11 網(wǎng)絡(luò)節(jié)點(diǎn)減少
OSEK直接網(wǎng)絡(luò)管理是一種使用較為廣泛的網(wǎng)絡(luò)管理策略,隨著汽車產(chǎn)品CAN網(wǎng)絡(luò)的普及,選擇一種低成本高效率的網(wǎng)絡(luò)管理策略十分必要,而OSEK直接網(wǎng)絡(luò)管理符合這樣的特點(diǎn)。某汽車是第一款加入CAN網(wǎng)絡(luò)的產(chǎn)品,對(duì)日后江淮的CAN網(wǎng)絡(luò)發(fā)展研究具有開拓意義。
參考文獻(xiàn)
[1]張利,路園,張建軍,張本宏,王躍飛. OSEK網(wǎng)絡(luò)管理在汽車CAN系統(tǒng)中研究與實(shí)現(xiàn)[J]. 電子測(cè)量與儀器學(xué)報(bào),2011,25(6): 522-527.
[2]陳筠翰,秦貴和,于赫,黃玥.基于OSEK/VDX直接NM規(guī)范的車載網(wǎng)絡(luò)系統(tǒng)[J]. 吉林大學(xué)學(xué)報(bào):工學(xué)版, 2011,41(5):1407-1413.
The Application of OSEK in CAN-bus System of Motor
Chu Hongchao
(JAC Technical Center Electric System Design Department, Anhui Hefei 230009)
Abstract:You will see the application of OSEK network management of CAN network in the car.The method of OSEK network management is introduced in this paper and it is presented with cases to tell how to implement OSEK.
Keywords:CAN bus; network management; OSEK
中圖分類號(hào):U463.67.4
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1671-1998(2016)05-114-05
作者簡(jiǎn)介:初洪超,就職于安徽江淮汽車股份有限公司。