Patent Publication Number: US-10769109-B2

Title: Control method for storage device of driving recorder and storage device control system

Description:
This application claims the benefit of Taiwan application Serial No. 106121373, filed Jun. 27, 2017, the subject matter of which is incorporated herein by reference. 
     BACKGROUND OF THE INVENTION 
     Field of the Invention 
     The invention relates in general to a control method and a control system, and more particularly to a control method for a storage device of a driving recorder and a storage device control system. 
     Description of the Related Art 
     A file system is a system for managing files in a storage device (e.g., an SD card or a hard drive) to efficiently conduct the storage device. A file allocation table (FAT) is a common file system. 
       FIG. 1  shows a schematic diagram of a storage device  900  adopting an FAT file system. The storage device  900  includes an FAT  920 , a directory entry  930  and a plurality of data clusters  940 . Taking a driving recorder for example, after multiple operations of writing and deleting files, data of the same file may be stored in a scattered manner in non-consecutive data clusters  940 . For example, as shown in  FIG. 1 , a file FA is stored in data clusters numbered “13”, “14”, “15”, “19” and “20”. 
     The directory entry  930  records a file name and a starting data cluster number in the storage device  900 . The FAT  920  records an FAT chain of the data clusters. For example, the directory entry  930  indicates that a file FA is stored in the storage device  900 , and the data of the file FA is stored in the data cluster  940  numbered “13”. In the FAT  920 , the position corresponding to the data cluster  940  numbered “13” shows “14”, which indicates that subsequent data of the file FA is stored in the data cluster  940  numbered “14”. In the FAT  920 , the position corresponding to the data cluster  940  numbered “14” shows “15”, which indicates that subsequent data of the file FA is stored in the data cluster  940  numbered “15”, and so forth. In the FAT  920 , the position corresponding to the data cluster  940  numbered “20” shows “EOC”, which indicates that the data cluster  940  numbered “20” is end of cluster-chain (EOC) of the data cluster  940 . 
       FIG. 2  shows a flowchart of a method for writing a file of a driving recorder.  FIG. 3  is a schematic diagram of a storage device  900  operating according to  FIG. 2 . For example, after a recording process of the driving recorder is activated, the FAT  920  in the storage device  900  is duplicated to a dynamic random access memory (DRAM) (step S 901 ). It is then determined whether the storage space in the storage device  900  is sufficient according to the FAT in the DRAM (step S 902 ). If the storage device  900  has a sufficient storage space, one data cluster is selected as a starting data cluster for writing data therein (e.g., the data cluster numbered “16”) (step S 903 ), and a file name (e.g., FB) and the number of a starting data cluster (e.g., “16”) are added into the FAT  930 . Then, another data cluster is selected for writing data therein (e.g., the data cluster numbered “17”) (step S 905 ), the number of the data cluster (e.g., “17”) is recorded in the FAT in the DRAM, at a position corresponding to the data cluster numbered “16” (step S 906 ), and the data is written to the data cluster (step S 907 ). The above steps are repeated until the writing process of the file is completed. Further, when the FAT in the DRAM is updated for a predetermined number of times (e.g., three times), the FAT  920  in the storage device  900  is updated according to the FAT in the DRAM until the writing process of the file ends. After the writing process of the file ends, the driving recorder again updates the FAT  920  in the storage device  900  according to the FAT in the DRAM. 
     However, unexpected power disconnections caused by car accidents may result in a reading failure due to an incomplete FAT chain. For example, as shown in  FIG. 3 , in the event of an unexpected power disconnection after the data of the file FB is written to the data cluster numbered “29”, the FAT chain of the data FB is incomplete because the FAT  920  in the storage device  900  is not yet updated according to the FAT in the DRAM, in a way that the data of the file FB stored at the data clusters numbered “22” and “29” cannot be read. With respect to a driving recorder, the failure in reading data related to a car accident is an extremely severe problem. 
     SUMMARY OF THE INVENTION 
     The invention is directed to a control method for a storage device of a driving recorder and a storage device control system, which plan a storage device according to a predetermined file allocation table (FAT) and a predetermined directory entry to prevent reading failures caused by unexpected power disconnections. 
     According to an aspect of the present invention, a control method for a storage device of a driving recorder is provided. The control method for a storage device of a driving recorder includes steps of: planning a directory entry of a storage device according to a predetermined directory entry stored in a storage unit; planning a file allocation table (FAT) of the storage device according to a predetermined FAT stored in the storage unit; and controlling a controller to write data to the storage device according to the directory entry and the FAT. 
     According to another aspect of the present invention, a storage device control system is provided. The storage device control system includes a storage unit, a controller and a processor. The storage unit stores a predetermined directory entry and a predetermined FAT. The controller writes data to a storage device. The processor performs steps of: planning a directory entry of the storage device according to the predetermined directory file; planning an FAT of the storage device according to the predetermined FAT; and controlling the controller to write data to the storage device according to the directory file and the FAT. 
     The above and other aspects of the invention will become better understood with regard to the following detailed description of the non-limiting embodiments. The following description is made with reference to the accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  (prior art) is a schematic diagram of a storage device adopting an FAT file system of the prior art; 
         FIG. 2  (prior art) is a flowchart of a method for writing a file of a driving recorder of the prior art; 
         FIG. 3  (prior art) is a schematic diagram of a storage device performing the operation in  FIG. 2 ; 
         FIG. 4  is a block diagram of a control system according to an embodiment of the present invention; 
         FIG. 5  is a flowchart of a control method for a storage device of a driving recorder according to an embodiment of the present invention; 
         FIG. 6  is a schematic diagram of a storage device in which a directory file and a file allocation table (FAT) are planned according to an embodiment of the present invention; 
         FIG. 7  is a flowchart of writing data to a storage device according to an embodiment of the present invention; and 
         FIG. 8  is a schematic diagram of a storage device performing the operation in  FIG. 7 . 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     In view of issues of a storage device of a driving recorder of the prior art, the present invention provides a control method for a storage device of a driving recorder and a storage device control system, which plan a file allocation table (FAT) and a directory entry of a storage device according to a predetermined FAT and a predetermined directory entry to prevent reading failures caused by an unexpected power disconnection. 
       FIG. 4  shows a block diagram of a control system  100  according to an embodiment of the present invention. For example, the control system  100  is a control chip. In this embodiment, the control system  100  is connected to a video camera  200  and a storage device  400 . The control system  100  and the video camera  200  may be provided at a driving recorder, for example. The storage device  400  is, for example, an SD card or a hard drive, and may be built in or externally connected to the driving recorder. The control system  100  includes a storage unit  110 , a controller  120  and a processor  130 . The storage unit  110  stores a predetermined directory entry and a predetermined FAT. The controller  120  writes data to the storage device  400 . The processor  130  plans a directory entry and an FAT of the storage device  400 . 
       FIG. 5  shows a flowchart of a control method for a storage device of a driving recorder according to an embodiment of the present invention. In this embodiment, each time the driving recorder is activated, or each time the storage device  400  is replaced, the processor  130  checks whether a directory entry or an FAT exists in the storage device  400  (step S 501 ). If not, the processor  130  directly plans the directory entry and the FAT in the storage device  400  according to the predetermined directory entry and the predetermined FAT in the storage unit  110  (step S 503 ); if so, the processor  130  further checks whether the directory entry and the FAT in the storage device  400  are identical to the predetermined directory entry and the predetermined FAT in the storage unit  110  (step S 502 ). If different, the processor  130  directly plans the directory entry and the FAT in the storage device  400  according to the predetermined directory entry and the predetermined FAT in the storage unit  110  (step S 503 ). 
       FIG. 6  shows a schematic diagram of a storage device  400  in which a directory entry and an FAT are planned according to an embodiment of the present invention. The storage device  400  includes an FAT  420  planned according to a predetermined FAT, a directory entry  430  planned according to a predetermined FAT, and a plurality of data clusters  440 . 
     As shown in  FIG. 6 , in the directory entry  430 , the processor  130  plans a file name FC corresponding to a file and a starting data cluster corresponding to the file FC as a data cluster numbered “11”; and in the FAT  420 , the processor  130  further plans the FAT chain corresponding to the file FC as the data clusters numbered “11” to “15”. Similarly, in the directory entry  430 , the processor  130  plans a corresponding file name FD and a starting data cluster corresponding to the file FD as a data cluster numbered “16”; and in the FAT  420 , the processor  130  further plans the FAT chain corresponding to the file FD as the data clusters numbered “16” to “20”. 
     In other words, the data of the file FC is preset to be stored in the data clusters numbered “11” to “15”, and the data of the file FD is preset to be stored in the data clusters numbered “16” to “20”. It should be noted that, although the directory entry  430  and the FAT  420  are already planned, in the storage device  400 , the data clusters corresponding to the file FC and the file FD (i.e., the data clusters numbered “11” to “20”) are not stored with the data corresponding to the file FC and the file FD, as shown in  FIG. 6 . 
       FIG. 7  shows a flowchart of writing data to the storage device  400  according to an embodiment of the present invention. In this embodiment, the processor  130  controls the controller  120  to write data to the storage device  400  according to the directory entry  430  and the FAT  420 . 
     For example, as the driving recorder starts recording, the processor  130  selects a file for writing data therein according to the directory entry  430  (step S 704 ). In one embodiment, the file names in the directory entry  430  carry time information, and so the processor  130  can select an oldest file for writing data therein according to the file names in the directory entry  430 . Taking  FIG. 6  for example, the file FC is the oldest file. 
     Next, the processor  130  changes the file name in the directory entry  430  corresponding to the file (step S 705 ). In continuation of the above example, the processor  130  changes, in the directory entry  430 , the file name of the file that the processor  130  selects for writing data therein from “FC” to “FE”, as shown in  FIG. 8 . It should be noted that, in the directory entry  430 , the starting data cluster corresponding to the file FE stays unchanged and is still the data cluster numbered “11”. Further, in the FAT  420 , the FAT chain corresponding to the file FE remains unchanged, and is still the data clusters numbered “11” to “15”. 
     The processor  130  controls the controller  120  to write data to the data clusters in the storage device  400  planned for the file (step S 706 ). In continuation of the above example, the processor  130  controls the controller  120  to write data sequentially to the data clusters numbered “11” to “15” in the storage device  400 , as shown in  FIG. 8 . 
     Next, the processor  130  determines whether to continue writing data (step S 707 ). If data is continued to be written, steps S 704  to S 706  are repeated; if not, the process ends. 
     It is known from the above that, during the process in which the processor  130  writes data to the storage device  400 , the FAT  420  is not updated. Thus, even if the driving recorder encounters an unexpected power disconnection, the FAT chain corresponding to a file in the FAT is kept intact, and the data in the file in the storage device  400  can still be completely read. 
     Further, in the prior art, a processor needs to spend time on searching for empty data clusters for writing data therein. After multiple operations of writing and deleting a file, empty data clusters are usually in fragments, and so file writing performance is reduced. Compared to the prior art, the data clusters of files in the present invention are pre-planned and do not change, meaning that the processor need not spend time on searching for empty clusters for writing data therein, thereby enhancing the file writing performance. In one embodiment, the clusters of files may be planned as being consecutive (as shown in  FIG. 6 ) to further enhance the file writing performance. 
     Further, in the prior art, a processor needs to determine whether an available space is sufficient before writing data. If the available space is insufficient, the processor needs to delete the file name and a starting data cluster corresponding to at least one file from the directory entry, and also delete the FAT chain corresponding to the least one file from the FAT, reducing the file writing performance. Compared to the prior art, the processor  130  of the present invention is not required to determine whether an available space is sufficient before writing data, nor is the processor required to delete the file name and the starting data cluster from the directory file and the FAT chain from the FAT, thereby further enhancing the file writing performance. 
     While the invention has been described by way of example and in terms of the above embodiments, it is to be understood that the invention is not limited thereto. On the contrary, it is intended to cover various modifications and similar arrangements and procedures, and the scope of the appended claims therefore should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements and procedures.