專利名稱:基于usb和nand flash的數(shù)據(jù)打包和傳輸?shù)姆椒?br>
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于USB和NAND FLASH的數(shù)據(jù)打包和傳輸?shù)姆椒ā?
背景技術(shù):
在嵌入式系統(tǒng)的開發(fā)中,通常采用交叉編譯的方法,首先在PC機(jī)上編輯、編譯代 碼,然后將生成的可執(zhí)行文件及相應(yīng)的系統(tǒng)配置文件通過某種接口(如JTAG、UART或USB 等)下載到目標(biāo)平臺(tái)上去運(yùn)行、調(diào)試。USB是一種簡單高速的傳輸接口,目前幾乎所有的嵌 入式產(chǎn)品,如手機(jī)、媒體播放器等都支持USB傳輸。而NAND FLASH存儲(chǔ)器具有容量大、讀寫 速度快且廉價(jià)的特點(diǎn),在嵌入式產(chǎn)品中亦得到越來越廣泛的應(yīng)用。目前基于USB和NAND FLASH的數(shù)據(jù)傳輸多采用“流”的方式。現(xiàn)有的嵌入式系統(tǒng) 的開發(fā)中,首先在PC機(jī)上編輯、編譯代碼,然后將生成的可執(zhí)行文件及相應(yīng)的系統(tǒng)配置文 件通過USB接口以“流”的方式傳輸?shù)侥繕?biāo)平臺(tái)上,待上述文件完全傳至目標(biāo)平臺(tái)上時(shí),再 進(jìn)行分包處理存儲(chǔ)于NAND FLASH,由于NAND FLASH處理相對PC機(jī)速度慢,且在傳輸過程中 若出現(xiàn)傳輸錯(cuò)誤,則需要重傳,因此傳輸時(shí)長較長,處理數(shù)據(jù)效率較低。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于USB和NAND FLASH的數(shù)據(jù)打包和傳輸?shù)姆椒?,?高效、快速、便利的特點(diǎn),可廣泛應(yīng)用于軟件開發(fā)、工業(yè)生產(chǎn)及售后服務(wù)等領(lǐng)域。本發(fā)明一種基于USB和NAND FLASH的數(shù)據(jù)打包和傳輸?shù)姆椒?,包括以下具體步 驟步驟1、在主機(jī)上對原始數(shù)據(jù)按照NAND FLASH塊的大小,以塊的形式進(jìn)行數(shù)據(jù)打 包,形成輸出文件;步驟2、將輸出文件從主機(jī)傳輸至目標(biāo)平臺(tái);輸出文件從主機(jī)傳輸?shù)侥繕?biāo)平臺(tái)的過程中,先從文件頭開始傳輸,文件頭用于在 數(shù)據(jù)存儲(chǔ)階段計(jì)算當(dāng)前文件存儲(chǔ)的起始位置,目標(biāo)平臺(tái)收到一個(gè)文件頭,表示一個(gè)新文件 傳輸?shù)拈_始,并回傳給主機(jī)“可以開始數(shù)據(jù)包傳輸”的指令;開始數(shù)據(jù)包傳輸時(shí),主機(jī)先給目標(biāo)平臺(tái)發(fā)送一個(gè)包頭,告訴目標(biāo)平臺(tái)當(dāng)前數(shù)據(jù)包 的大小和校驗(yàn)和;目標(biāo)平臺(tái)接收到包頭后,告訴主機(jī)可以傳輸數(shù)據(jù),并開始從主機(jī)接收由包 頭指定大小的數(shù)據(jù)量;然后開始采用和數(shù)據(jù)打包過程中相同的算法計(jì)算校驗(yàn)和,如果計(jì)算 出的校驗(yàn)和與包頭中的校驗(yàn)和一致,則表示當(dāng)前傳輸成功;若結(jié)果不一致,則表示當(dāng)前傳輸 失??;當(dāng)每個(gè)數(shù)據(jù)包傳完之后,目標(biāo)平臺(tái)會(huì)回傳給主機(jī)一個(gè)“傳輸成功與否”的指令,只有 在上一個(gè)數(shù)據(jù)包成功傳輸后,才開始傳輸下一個(gè)數(shù)據(jù)包,這樣一個(gè)一個(gè)地依次傳輸數(shù)據(jù)包; 若平臺(tái)回傳給主機(jī)的指令為傳輸出錯(cuò),則只需將傳輸出錯(cuò)的數(shù)據(jù)包重傳,直至傳輸成功為 止;步驟3、所述的傳輸至目標(biāo)平臺(tái)的輸出文件在NAND FLASH中采用分區(qū)存放的方式, 分區(qū)表存放在NAND FLASH的一個(gè)位置固定的特殊分區(qū)中,通過輸出文件中文件頭中的文件名,可以在分區(qū)表中查找對應(yīng)的分區(qū),決定其存儲(chǔ)的起始地址.包頭中的地址即是所屬分區(qū) 中的偏移地址,由分區(qū)的起始地址和當(dāng)前數(shù)據(jù)包的偏移地址計(jì)算出在NAND FLASH中的存儲(chǔ) 地址,通過NAND FLASH驅(qū)動(dòng)接口,將輸出文件中的數(shù)據(jù)寫入NAND FLASH中的正確地址。所述的在主機(jī)上對原始數(shù)據(jù)按照NAND FLASH塊的大小,以塊的形式進(jìn)行數(shù)據(jù)打 包,形成輸出文件,包括以下具體步驟(1)打開存儲(chǔ)有原始數(shù)據(jù)的輸入文件,將輸入文件按照NANDFLASH塊的大小進(jìn)行 分包,獲得數(shù)據(jù)包的個(gè)數(shù)以便進(jìn)行計(jì)數(shù)控制;(2)創(chuàng)建完輸出文件的文件頭后,開始依次創(chuàng)建數(shù)據(jù)包;(3)依次從輸入文件中讀取一個(gè)NAND FLASH塊大小的數(shù)據(jù)量,進(jìn)行校驗(yàn)和計(jì)算, 填充包頭和數(shù)據(jù)內(nèi)容形成一個(gè)數(shù)據(jù)包寫入輸出文件中;(4)當(dāng)開始創(chuàng)建最后一個(gè)數(shù)據(jù)包時(shí),先從輸入文件中讀取剩余的數(shù)據(jù)量,進(jìn)行校驗(yàn) 和計(jì)算,填充包頭和數(shù)據(jù)內(nèi)容形成數(shù)據(jù)包寫入輸出文件;(5)形成對應(yīng)上述輸入文件的輸出文件,該輸出文件的數(shù)據(jù)結(jié)構(gòu)表示為文件頭+ 包頭1和數(shù)據(jù)內(nèi)容+包頭2和數(shù)據(jù)內(nèi)容……+包頭N和數(shù)據(jù)內(nèi)容。當(dāng)輸入文件為多個(gè)時(shí),對應(yīng)該輸入文件創(chuàng)建多個(gè)輸出文件,將多個(gè)輸出文件依次 拷貝在一起,形成如下所示的數(shù)據(jù)結(jié)構(gòu),則可進(jìn)行批量的文件傳輸,該多個(gè)輸出文件的數(shù)據(jù) 結(jié)構(gòu)表示為文件頭1+包頭1和數(shù)據(jù)內(nèi)容+包頭2和數(shù)據(jù)內(nèi)容……+包頭N和數(shù)據(jù)內(nèi)容+文 件頭2+包頭1和數(shù)據(jù)內(nèi)容+包頭2和數(shù)據(jù)內(nèi)容……+包頭N和數(shù)據(jù)內(nèi)容……+文件頭N+ 包頭1和數(shù)據(jù)內(nèi)容+包頭2和數(shù)據(jù)內(nèi)容……+包頭N和數(shù)據(jù)內(nèi)容。所述批量的文件傳輸,在一個(gè)大輸出文件中包含有多個(gè)子輸出文件,根據(jù)文件頭 數(shù)據(jù)結(jié)構(gòu)的定義,主機(jī)可以清楚地知道每個(gè)子輸出文件在大輸出文件中的起始位置和結(jié)束 位置,主機(jī)依次傳輸每個(gè)子輸出文件至目標(biāo)平臺(tái)。本發(fā)明一種基于USB和NAND FLASH的數(shù)據(jù)打包和傳輸?shù)姆椒?,首先在主機(jī)上將輸 入文件按照NAND FLASH塊存儲(chǔ)的特點(diǎn)處理并形成與NAND FLASH塊存儲(chǔ)相對應(yīng)的輸出文 件,然后將輸出文件從主機(jī)傳輸至目標(biāo)平臺(tái),傳輸過程中依次確認(rèn)數(shù)據(jù)包傳輸是否成功,一 旦傳輸出錯(cuò),則從傳輸出錯(cuò)處開始重傳,使數(shù)據(jù)能快速、安全地傳輸,并且能實(shí)現(xiàn)多文件批 量傳輸;并且,由于該輸出文件的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)包與NANDFLASH塊存儲(chǔ)是一致且對應(yīng)的, 所以該輸出文件傳輸至目標(biāo)平臺(tái)后存儲(chǔ)入NAND FLASH的數(shù)據(jù)處理過程會(huì)相對簡單而快速, 不容易出錯(cuò)。
圖1為本發(fā)明中基本文件的數(shù)據(jù)結(jié)構(gòu)示意圖;圖2為本發(fā)明中多個(gè)基本文件依次拷貝在一起的數(shù)據(jù)結(jié)構(gòu)示意圖;圖3為本發(fā)明中數(shù)據(jù)打包的流程圖。以下結(jié)合附圖和具體實(shí)施例對本發(fā)明作進(jìn)一步詳述。
具體實(shí)施例本發(fā)明一種基于USB和NAND FLASH的數(shù)據(jù)打包和傳輸?shù)姆椒?,主要包括以下幾個(gè)步驟步驟1、在主機(jī)上對原始數(shù)據(jù)按照NAND FLASH塊的大小,以塊的形式進(jìn)行數(shù)據(jù)打 包,形成輸出文件;首先,在主機(jī)(PC)上對編緝好的程序(即原始數(shù)據(jù))以塊的形式進(jìn)行分包,如圖 3所示的數(shù)據(jù)打包流程如下(1)打開存儲(chǔ)有原始數(shù)據(jù)的輸入文件,將輸入文件按照NANDFLASH塊的大小進(jìn)行 分包,獲得數(shù)據(jù)包的個(gè)數(shù)以便進(jìn)行計(jì)數(shù)控制;(2)創(chuàng)建完輸出文件的文件頭后,開始依次創(chuàng)建數(shù)據(jù)包;(3)依次從輸入文件中讀取一個(gè)NAND FLASH塊大小的數(shù)據(jù)量,進(jìn)行ECC校驗(yàn)和計(jì) 算,填充包頭和數(shù)據(jù)內(nèi)容形成一個(gè)數(shù)據(jù)包寫入輸出文件中;(4)當(dāng)開始創(chuàng)建最后一個(gè)數(shù)據(jù)包時(shí),先從輸入文件中讀取剩余的數(shù)據(jù)量,進(jìn)行ECC 校驗(yàn)和計(jì)算,填充包頭和數(shù)據(jù)內(nèi)容形成數(shù)據(jù)包寫入輸出文件;(5)形成對應(yīng)上述輸入文件的輸出文件,該輸出文件的數(shù)據(jù)結(jié)構(gòu)如圖1所示,表示 為文件頭+包頭1和數(shù)據(jù)內(nèi)容+包頭2和數(shù)據(jù)內(nèi)容……+包頭N和數(shù)據(jù)內(nèi)容。當(dāng)輸入文件為多個(gè)時(shí),對應(yīng)該輸入文件創(chuàng)建多個(gè)輸出文件,將圖1中的多個(gè)輸出 文件依次拷貝在一起,形成如圖2所示的數(shù)據(jù)結(jié)構(gòu),則可實(shí)現(xiàn)批量傳輸。該多個(gè)輸出文件的 數(shù)據(jù)結(jié)構(gòu)表示為文件頭1+包頭1和數(shù)據(jù)內(nèi)容+包頭2和數(shù)據(jù)內(nèi)容……+包頭N和數(shù)據(jù)內(nèi)容+文 件頭2+包頭1和數(shù)據(jù)內(nèi)容+包頭2和數(shù)據(jù)內(nèi)容……+包頭N和數(shù)據(jù)內(nèi)容……+文件頭N+ 包頭1和數(shù)據(jù)內(nèi)容+包頭2和數(shù)據(jù)內(nèi)容……+包頭N和數(shù)據(jù)內(nèi)容。步驟2、將輸出文件從主機(jī)傳輸至目標(biāo)平臺(tái);當(dāng)輸出文件開始從主機(jī)(PC)傳輸?shù)侥繕?biāo)平臺(tái)時(shí),先從文件頭開始傳輸,文件頭用 于在數(shù)據(jù)存儲(chǔ)階段計(jì)算當(dāng)前文件存儲(chǔ)的起始位置,目標(biāo)平臺(tái)收到一個(gè)文件頭,表示一個(gè)新 文件傳輸?shù)拈_始,并回傳給主機(jī)“可以開始數(shù)據(jù)包傳輸”的指令。開始數(shù)據(jù)包傳輸時(shí),主機(jī)先給目標(biāo)平臺(tái)發(fā)送一個(gè)包頭,告訴目標(biāo)平臺(tái)當(dāng)前數(shù)據(jù)包 的大小和校驗(yàn)和;目標(biāo)平臺(tái)接收到包頭后,告訴主機(jī)可以傳輸數(shù)據(jù),并開始從主機(jī)接收由包 頭指定大小的數(shù)據(jù);然后開始采用和數(shù)據(jù)打包過程中相同的算法計(jì)算校驗(yàn)和,如果計(jì)算出 的校驗(yàn)和與包頭中的校驗(yàn)和一致,則表示當(dāng)前傳輸成功;若結(jié)果不一致,則表示當(dāng)前傳輸失 敗;當(dāng)每個(gè)數(shù)據(jù)包傳完之后,平臺(tái)會(huì)回傳給主機(jī)一個(gè)“傳輸成功與否”的指令,只有在上一個(gè) 數(shù)據(jù)包成功傳輸后,才開始傳輸下一個(gè)數(shù)據(jù)包,這樣一個(gè)一個(gè)地依次傳輸數(shù)據(jù)包;若平臺(tái)回 傳給主機(jī)的指令為傳輸出錯(cuò),則只需將傳輸出錯(cuò)的數(shù)據(jù)包重傳,直至傳輸成功為止。例如, 如果成功傳了 3個(gè)數(shù)據(jù)包,若第4個(gè)數(shù)據(jù)包出錯(cuò),則下次傳輸從第4個(gè)數(shù)據(jù)包開始傳。對于批量的文件傳輸,在一個(gè)大輸出文件中包含有多個(gè)子輸出文件。根據(jù)文件頭 數(shù)據(jù)結(jié)構(gòu)的定義,主機(jī)可以清楚地知道每個(gè)子輸出文件在大輸出文件中的起始位置和結(jié)束 位置,主機(jī)按以上傳輸?shù)姆绞?,依次處理每個(gè)子輸出文件,即可實(shí)現(xiàn)多文件的批量傳輸。步驟3、將傳輸至目標(biāo)平臺(tái)的輸出文件存儲(chǔ)至NAND FLASH中;該傳輸至目標(biāo)平臺(tái)的輸出文件在NAND FLASH中采用分區(qū)存放的方式,分區(qū)表存放 在NAND FLASH的一個(gè)位置固定的特殊分區(qū)中,并且分區(qū)表也可作為一個(gè)文件通過以上方式下載,從而對分區(qū)表進(jìn)行更新。通過輸出文件中文件頭中的文件名,可以在分區(qū)表中查找對 應(yīng)的分區(qū),決定其存儲(chǔ)的起始地址.包頭中的地址即是所屬分區(qū)中的偏移地址,由分區(qū)的 起始地址和當(dāng)前數(shù)據(jù)包的偏移地址計(jì)算出在NAND FLASH中的存儲(chǔ)地址,通過NAND FLASH 驅(qū)動(dòng)接口,將輸出文件中的數(shù)據(jù)寫入NAND FLASH中的正確地址。 本發(fā)明的重點(diǎn)在于首先在主機(jī)上將輸入文件按照NAND FLASH塊存儲(chǔ)的特點(diǎn)處 理并形成與NAND FLASH塊存儲(chǔ)相對應(yīng)的輸出文件,然后將輸出文件從主機(jī)傳輸至目標(biāo)平 臺(tái),傳輸過程中依次確認(rèn)數(shù)據(jù)包傳輸是否成功,一旦傳輸出錯(cuò),則從傳輸出錯(cuò)處開始重傳, 使數(shù)據(jù)能快速、安全地傳輸,并且能實(shí)現(xiàn)多文件批量傳輸;該輸出文件傳輸至目標(biāo)平臺(tái)后, 該輸出文件中的數(shù)據(jù)包依照與NAND FLASH對應(yīng)的位置存儲(chǔ)入NANDFLASH中。
權(quán)利要求
1.一種基于USB和NAND FLASH的數(shù)據(jù)打包和傳輸?shù)姆椒?,其特征在于包括以下幾個(gè)步驟步驟1、在主機(jī)上對原始數(shù)據(jù)按照NAND FLASH塊的大小,以塊的形式進(jìn)行數(shù)據(jù)打包,形 成輸出文件;步驟2、將輸出文件從主機(jī)傳輸至目標(biāo)平臺(tái);輸出文件從主機(jī)傳輸?shù)侥繕?biāo)平臺(tái)的過程中,先從文件頭開始傳輸,文件頭用于在數(shù)據(jù) 存儲(chǔ)階段計(jì)算當(dāng)前文件存儲(chǔ)的起始位置,目標(biāo)平臺(tái)收到一個(gè)文件頭,表示一個(gè)新文件傳輸 的開始,并回傳給主機(jī)“可以開始數(shù)據(jù)包傳輸”的指令;開始數(shù)據(jù)包傳輸時(shí),主機(jī)先給目標(biāo)平臺(tái)發(fā)送一個(gè)包頭,告訴目標(biāo)平臺(tái)當(dāng)前數(shù)據(jù)包的大 小和校驗(yàn)和;目標(biāo)平臺(tái)接收到包頭后,告訴主機(jī)可以傳輸數(shù)據(jù),并開始從主機(jī)接收由包頭指 定大小的數(shù)據(jù)量;然后開始采用和數(shù)據(jù)打包過程中相同的算法計(jì)算校驗(yàn)和,如果計(jì)算出的 校驗(yàn)和與包頭中的校驗(yàn)和一致,則表示當(dāng)前傳輸成功;若結(jié)果不一致,則表示當(dāng)前傳輸失 敗;當(dāng)每個(gè)數(shù)據(jù)包傳完之后,目標(biāo)平臺(tái)會(huì)回傳給主機(jī)一個(gè)“傳輸成功與否”的指令,只有在上 一個(gè)數(shù)據(jù)包成功傳輸后,才開始傳輸下一個(gè)數(shù)據(jù)包,這樣一個(gè)一個(gè)地依次傳輸數(shù)據(jù)包;若平 臺(tái)回傳給主機(jī)的指令為傳輸出錯(cuò),則只需將傳輸出錯(cuò)的數(shù)據(jù)包重傳,直至傳輸成功為止;步驟3、所述的傳輸至目標(biāo)平臺(tái)的輸出文件在NAND FLASH中采用分區(qū)存放的方式,分 區(qū)表存放在NAND FLASH的一個(gè)位置固定的特殊分區(qū)中,通過輸出文件中文件頭中的文件 名,可以在分區(qū)表中查找對應(yīng)的分區(qū),決定其存儲(chǔ)的起始地址.包頭中的地址即是所屬分 區(qū)中的偏移地址,由分區(qū)的起始地址和當(dāng)前數(shù)據(jù)包的偏移地址計(jì)算出在NAND FLASH中的存 儲(chǔ)地址,通過NAND FLASH驅(qū)動(dòng)接口,將輸出文件中的數(shù)據(jù)寫入NAND FLASH中的正確地址。
2.根據(jù)權(quán)利要求1所述的一種基于USB和NANDFLASH的數(shù)據(jù)打包和傳輸?shù)姆椒ǎ?的在主機(jī)上對原始數(shù)據(jù)按照NAND FLASH塊的大小,以塊的形式進(jìn)行數(shù)據(jù)打包,形成輸出文 件,包括以下具體步驟(1)打開存儲(chǔ)有原始數(shù)據(jù)的輸入文件,將輸入文件按照NANDFLASH塊的大小進(jìn)行分包, 獲得數(shù)據(jù)包的個(gè)數(shù)以便進(jìn)行計(jì)數(shù)控制;(2)創(chuàng)建完輸出文件的文件頭后,開始依次創(chuàng)建數(shù)據(jù)包;(3)依次從輸入文件中讀取一個(gè)NANDFLASH塊大小的數(shù)據(jù)量,進(jìn)行校驗(yàn)和計(jì)算,填充 包頭和數(shù)據(jù)內(nèi)容形成一個(gè)數(shù)據(jù)包寫入輸出文件中;(4)當(dāng)開始創(chuàng)建最后一個(gè)數(shù)據(jù)包時(shí),先從輸入文件中讀取剩余的數(shù)據(jù)量,進(jìn)行校驗(yàn)和計(jì) 算,填充包頭和數(shù)據(jù)內(nèi)容形成數(shù)據(jù)包寫入輸出文件;(5)形成對應(yīng)上述輸入文件的輸出文件,該輸出文件的數(shù)據(jù)結(jié)構(gòu)表示為文件頭+包頭 1和數(shù)據(jù)內(nèi)容+包頭2和數(shù)據(jù)內(nèi)容……+包頭N和數(shù)據(jù)內(nèi)容。
3.根據(jù)權(quán)利要求2所述的一種基于USB和NAND FLASH的數(shù)據(jù)打包和傳輸?shù)姆椒?,其?征在于當(dāng)輸入文件為多個(gè)時(shí),對應(yīng)該輸入文件創(chuàng)建多個(gè)輸出文件,將多個(gè)輸出文件依次拷貝 在一起,形成如下所示的數(shù)據(jù)結(jié)構(gòu),則可進(jìn)行批量的文件傳輸,該多個(gè)輸出文件的數(shù)據(jù)結(jié)構(gòu) 表示為文件頭1+包頭1和數(shù)據(jù)內(nèi)容+包頭2和數(shù)據(jù)內(nèi)容……+包頭N和數(shù)據(jù)內(nèi)容+文件頭 2+包頭1和數(shù)據(jù)內(nèi)容+包頭2和數(shù)據(jù)內(nèi)容……+包頭N和數(shù)據(jù)內(nèi)容……+文件頭N+包頭1和數(shù)據(jù)內(nèi)容+包頭2和數(shù)據(jù)內(nèi)容……+包頭N和數(shù)據(jù)內(nèi)容。
4.根據(jù)權(quán)利要求3所述的一種基于USB和NAND FLASH的數(shù)據(jù)打包和傳輸?shù)姆椒ǎ涮?征在于所述批量的文件傳輸,在一個(gè)大輸出文件中包含有多個(gè)子輸出文件,根據(jù)文件頭數(shù) 據(jù)結(jié)構(gòu)的定義,主機(jī)可以清楚地知道每個(gè)子輸出文件在大輸出文件中的起始位置和結(jié)束位 置,主機(jī)依次傳輸每個(gè)子輸出文件至目標(biāo)平臺(tái)。
全文摘要
本發(fā)明一種基于USB和NAND FLASH的數(shù)據(jù)打包和傳輸?shù)姆椒ǎ紫仍谥鳈C(jī)上將輸入文件按照NAND FLASH塊存儲(chǔ)的特點(diǎn)處理并形成與NAND FLASH塊存儲(chǔ)相對應(yīng)的輸出文件,然后將輸出文件從主機(jī)傳輸至目標(biāo)平臺(tái),傳輸過程中依次確認(rèn)數(shù)據(jù)包傳輸是否成功,一旦傳輸出錯(cuò),則從傳輸出錯(cuò)處開始重傳,使數(shù)據(jù)能快速、安全地傳輸,并且能實(shí)現(xiàn)多文件批量傳輸;并且,由于該輸出文件的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)包與NAND FLASH塊存儲(chǔ)是一致且對應(yīng)的,所以該輸出文件傳輸至目標(biāo)平臺(tái)后存儲(chǔ)入NAND FLASH的數(shù)據(jù)處理過程會(huì)相對簡單而快速,不容易出錯(cuò)。
文檔編號H04L29/08GK101997646SQ201010186549
公開日2011年3月30日 申請日期2010年5月25日 優(yōu)先權(quán)日2010年5月25日
發(fā)明者肖樂 申請人:銳騏(廈門)電子科技有限公司